Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obsługa nagłego zamknięcia strony. Sposob na wyswietlanie zalogowanych
Forum PHP.pl > Forum > PHP
XxmanxX
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
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
Po jakimś krótkim czasie bezczynności ustaw status na nieaktywny, a po dłuższym na wylogowany.
XxmanxX
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
Bardziej wydajne od crona jest sprawdzanie warunku:
  1. $query = ".SELECT * FROM user WHERE (isActive AND last_visit>=".date('Y-m-d H:i:s',time()-600). ") ...";
  2. // 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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.