![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 2 Dołączył: 20.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 2 Dołączył: 20.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki Pilsener. Tylko nie do konca rozumiem to posilkowanie sie Ajaxem? Moglbys to troche rozwinac?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
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. -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 2 Dołączył: 20.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ok dzieki, juz rozumiem.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:11 |