XxmanxX
8.12.2010, 11:52:52
Witam.
W jaki sposób mogę sprawdzić aktualnie zalogowane na stronie osoby?
Przy logowaniu aktualizuje odpowiednio pole isActive w bazie, przy wylogowanie rowniez aktualizuje to pole.
Co jednak zrobic jesli uzytkownik zamknie okno przegladarki, a nie kliknie wyloguje? Wtedy informacje z bazy nie będą juz prawdziwie.
Czy istnieje sposob na obsluge takiego zdarzenia? wykonanie danego skryptu przy zamykaniu przegladarki?
Na stronie uzywam zmiennych typu $_SESSION, uzywam bazy danych.
Dzieki za podpowiedzi
Pozdrawiam
wookieb
8.12.2010, 12:14:15
Nie istnieje 100% pewny sposób na sprawdzenie zamknięcia przeglądarki przez użytkownika. Nawet jeżeli zamknie się awaryjnie nie wyłapiesz tego. Musiałbyś ustanawiać stałe połączenia a nie jest to takie łatwe i wydajne.
Mephistofeles
8.12.2010, 14:03:09
Po jakimś krótkim czasie bezczynności ustaw status na nieaktywny, a po dłuższym na wylogowany.
XxmanxX
8.12.2010, 15:59:19
Czyli powinienem wrzucać do bazy czas każdej aktywności na stronie i z crontab'a sprawdzac czasy ?
Czy w jakis inny sposob, wydajniejszy ?
Czy w przypadku przejscia w stan "wylogowany" moge zmienic wartosc sesji dla konkretnego uzytkownika ?(utworzyc na to nowy topic?)
dzieki za odpowiedzi
pozdrawiam
Quadina
8.12.2010, 19:00:40
Bardziej wydajne od crona jest sprawdzanie warunku:
$query = ".SELECT * FROM user WHERE (isActive AND last_visit>=".date('Y-m-d H:i:s',time()-600). ") ..."; // gdzie 600 - to 10 minut
W ten sposób będziesz miał dane aktualne zawsze. Jedynym wymogiem jest aktualizowanie pola last_visit na NOW() przy każdym wywołaniu strony klienta.
XxmanxX
9.12.2010, 09:10:30
Dzieki wielkie za rozwiazanie.
Pozdrawiam
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.