Zalogowani użytkownicy - zasada działania


(kostek135) #1

Zastanawiam się, jak napisać panel pokazujący zalogowanych użytkowników. Wiadomo w momencie logowania (wciśnięcie buttona) mogę zmienić w bazie jakieś pole informujące o zalogowaniu, to samo przy wylogowaniu. Co jednak, gdy użytkownik po prostu zamknie okno przeglądarki? Sesje użytkowników obsługuje na cookies, wygasają one razem z zamknięciem przeglądarki.


(athei) #2

Poczytaj sobie http://forum.php.pl/index.php?act=Searc ... zalogowani


(M@ster) #3

Zapisujesz czas ost. aktywności i jeśli minie np: 2min to kasujesz ten wpis z bazy tak jakby user się wylogował.


(kostek135) #4

No dobra, tyle to sam wymyśliłem, zastanawiałem się czy przeglądarka nie nawiązuje jakiegoś połączenia z serwerem, które jest zrywane w momencie zamknięcia okna i po tym można by wylogować usera natychmiastowo?


(M@ster) #5

Może ale nie musi (keep-alive protokołu HTTP), ale i tak nie jesteś w stanie wykryć tego faktu.


(ra-v) #6

Można zrobić w AJAXie tak żeby sprawdzał co pewien czas użytkowników i aktualizował czas ostatniego dostępu użytkownika do strony. Jeśli po jakimś czasie się "nie odezwie" (czyli skrypt się nie wykona, bo zamknięta została przeglądarka) to można uznać go za wylogowanego.


(Sitemaster) #7

Tak, NoScript, albo wyłączony js w przeglądarce i wszystko leży i kwiczy.

Pewniejszym rozwiązaniem jest aktualizacja czasu przy odświeżeniu strony.


(ra-v) #8

A kto dziś wyłącza Javascript? większość stron zawiera javascript. A poza tym można zrobić prosty warunek i ostrzeżenie, więc nie leży i kwiczy. Chyba pisałem chata to wiem...


(M@ster) #9

To jest to samo co ja zaproponowałem z tym że dokładniejsze czasowo. Pytanie tylko po co komukolwiek wiedzieć co do sekundy kiedyś ktoś opuszcza stronę... :\