Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [zf] Zend_Session_SaveHandler_DbTable i użytkownicy online
Forum PHP.pl > Forum > PHP > Frameworki
MitS
Witam,

podobmy temat zamieściłem w kilku miejscach licząć na jakąkolwiek pomoc, póki co przez dłuższy czas bez odzewu więz zamieszczam i tu licząć że jednak ktoś pomoże.

Otóż, uzywam zf 1.10 i mam problem z sesją, a mianowicie z określeniem userów którzy są online.
config:
  1. resources.session.save_path = APPLICATION_PATH "/../data/session"
  2. resources.session.use_only_cookies = true
  3. resources.session.gc_maxlifetime = 864000
  4. resources.session.remember_me_seconds = 864000
  5. resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
  6. resources.session.saveHandler.options.name = "session"
  7. resources.session.saveHandler.options.primary.session_id = "session_id"
  8. resources.session.saveHandler.options.primary.save_path = "save_path"
  9. resources.session.saveHandler.options.primary.name = "name"
  10. resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
  11. resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
  12. resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
  13. resources.session.saveHandler.options.modifiedColumn = "modified"
  14. resources.session.saveHandler.options.dataColumn = "session_data"
  15. resources.session.saveHandler.options.lifetimeColumn = "lifetime"


bootstrap:
  1. protected function _initCoreSession()
  2. {
  3. $config = array(
  4. 'name' => 'session',
  5. 'primary' => array(
  6. 'session_id',
  7. 'save_path',
  8. 'name'
  9. ),
  10. 'primaryAssignment' => array(
  11. 'sessionId',
  12. 'sessionSavePath',
  13. 'sessionName',
  14. ),
  15. 'modifiedColumn' => 'modified',
  16. 'dataColumn' => 'session_data',
  17. 'lifetimeColumn' => 'lifetime',
  18. );
  19.  
  20. Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
  21. Zend_Session::start();
  22. }


na tą chwilę nie zadowala mnie te rozwiązanie gdyż każdego usera sesję zapisuje do bazy a tak bym nie chciał.
Chciałbym jedynie zapisywać sesję usera dobazy podczas logowania (zalogowanego i to też tylko id sessji i id_usera i jakis lefttime), defakto miałbym informację który użytkwonik jest online / offline.

Ponadto powyższe rozwiązanie trzyma sesję przez 24 godziny a chciałbym by online / offline było z ostatnich 5 minut. Ma ktoś pomysł / plugin itp ? Bede wdzieczny.

Pozdrawiam
zend
A w czym widzisz problem w przechowywaniu danych sesyjnych w bazie? Do użytkowników online wybierasz tylko tych użytkowników którzy zaktualizowali sesję w przeciągu 5 minut. Najlepiej będzie jeśli nadpiszesz Zend_Session_SaveHandler_DbTable tak aby jeśli istnieje w sesji id użytkownika to żeby zapisywało to do osobnej kolumny w tabeli
MitS
Cytat
A w czym widzisz problem w przechowywaniu danych sesyjnych w bazie?


tzn w niczym, ogolnie pasuje mi przechowywanie danych sesyjnych w plikach (tak jest obecnie i jest dobrze), problem jest że nie mam pojecia w jaki sposob zapisać i odczytać dane osob zalogowanych.

Cytat
Do użytkowników online wybierasz tylko tych użytkowników którzy zaktualizowali sesję w przeciągu 5 minut


a jak mogę to sprawdzić ?

Cytat
Najlepiej będzie jeśli nadpiszesz Zend_Session_SaveHandler_DbTable tak aby jeśli istnieje w sesji id użytkownika to żeby zapisywało to do osobnej kolumny w tabeli


hmm moglbys pokazac jakis przyklad bo nie ukrywając zendem zajmuje się stosunkowo niedawno i poki co korzystam z manuala więc powyższe zagadnienie na ta chwilę jest dla mnie problemem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.