Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obsługa nagłego zamknięcia strony. Sposob na wyswietlanie zalogowanych
XxmanxX
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 22.07.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.


--------------------
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #3





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

Ostrzeżenie: (0%)
-----


Po jakimś krótkim czasie bezczynności ustaw status na nieaktywny, a po dłuższym na wylogowany.
Go to the top of the page
+Quote Post
XxmanxX
post
Post #4





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 22.07.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Quadina
post
Post #5





Grupa: Zarejestrowani
Postów: 200
Pomógł: 38
Dołączył: 1.12.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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.


--------------------
Warsztat: NetBeans 7.2 Beta, PHP, MySQL, PostgreSQL, Symfony (<=1.4), Diem, Java, Sieci neuronowe
Go to the top of the page
+Quote Post
XxmanxX
post
Post #6





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 22.07.2009

Ostrzeżenie: (0%)
-----


Dzieki wielkie za rozwiazanie.
Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:12