Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Status dostepnosci uzytkownika
Forum PHP.pl > Forum > PHP
prohol
Witam,

Jak rozwiazujecie problem dostepnosci uzytkownika na stronie (np jak w naszej-klasie)?. Najwiekszym problem jest gdy uzytkownik zamknie przegladarke bez wylogowania. Jak wtedy okreslic jego status? W Dolphinie sa 2 pola w tabeli usera: jedno ze statusem (aktywny, zajety itp) a drugi ze znacznikiem czasowym ostatniej aktywnosci usera + w tabeli systemowej pozycja z max dlugoscia czasu aktywnosci usera (np 5 minut). I jak user nic nie robi na stronie np 5 minut to jego status przy niektorych funkcjach (jak wyszukiwanie) ustawiany jest na podstawie wzoru: if obecny_czas - czas_aktywnosci_usera > ostatni_czas_aktywnosci to status niedostepny - co nie implikuje zmiany pola status w bazie (bo to by bylo wkurzajace jakby przez 5 minut niekatywnosci user musial by zmieniac swoj status na aktywny itp). Jak rozwiazac ten problem? Wkrotce bede pisal swoj system i bede chcial taka funkcjonalnosc zaimplementowac. Obecnie system stoi na dolphinie i takie rozne dziwne kwiatki sie pojawiaja.
Pilsener
Ogólnie statusy są dwa: zalogowany i aktywny, aktywny użytkownik nie musi oznaczać zalogowanego (choć zazwyczaj tak jest) natomiast zalogowany aktywnego (gość się loguje i idzie do klopa na godzinę). Dlatego nie ma wygodnego ani wydajnego sposobu, po prostu mierzysz czas od ostatniej znanej akcji użytkownika, jeśli jest większy niż powiedzmy 5 minut user = nieaktywny, jeśli większy niż Twój czas ważności sesji = wylogowany (no chyba, ze kliknie oczywiście wyloguj). Nie znam żadnego sposobu by w PHP sprawdzić, czy user poszedł do klopa, czy wyłączył przeglądarkę - możesz posiłkować się AJAXem w celu wspomożenia swojego systemu (jednak nie może on opierać się w całości na AJAXie). Im częściej będziesz sprawdzał czas tym dokładniejszy będzie system, lecz baza i serwer będą bardziej obciążone - powinieneś uwzględnić to w konfiguracji i oczywiście pamiętaj o dobrym cache do tego.
prohol
Dzieki Pilsener. Tylko nie do konca rozumiem to posilkowanie sie Ajaxem? Moglbys to troche rozwinac?
marcio
Cytat(prohol @ 18.12.2009, 10:56:48 ) *
Dzieki Pilsener. Tylko nie do konca rozumiem to posilkowanie sie Ajaxem? Moglbys to troche rozwinac?


Chodzi o to ze mozesz wiedziec kto jest online bez przeladowania strony co jest bardziej precyzyjne i dodac sprawdzenie np co 10sec. zamiast co kazde przelodowanie strony.


prohol
Ok dzieki, juz rozumiem.
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.