Zalogowani użytkownicy - zasada działania

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.

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

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

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?

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

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.

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.

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…

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ę… :\