Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Aktywni użytkownicy
Forum PHP.pl > Forum > Przedszkole
ownede
Cześć,

Zastanawiam się jak najlepiej byłoby rozwiązać 'aktywnych użytkowników', czyli użytkowników którzy aktualnie przebywają na stronie.
Mamy z tym do czynienia na wielu społecznościówkach typu grono, czy nasza-klasa.

Należy założyć, że użytkownik nie zawsze kliknie w link 'wyloguj'.

Będę wdzięczny za każdą sugestie
wookieb
Przechowywać sesje w bazie i dodać do tabeli dodatkowe pole o id użytkownika. Będziesz wiedział, kto jest aktualnie zalogowany (posiada sesje).
Na problem z wylogowaniem nic nie zrobisz.
Fifi209
Cytat(wookieb @ 1.10.2009, 20:33:12 ) *
Na problem z wylogowaniem nic nie zrobisz.

Czemu? Przecież sesja ma jakiś czas "życia" smile.gif
wookieb
Tak ale czas życia nie może być za długi, ani za krótki. Ktoś wyjdzie z kompa a dopiero po x (czasie życia sesji) oznaczymy, że się wylogował co do końca prawdą nie jest.
Spawnm
to co wookieb pisał + data ostatniej wizyty na stronie (f5)
potem wyświetlasz wszystkich co byli aktywni w ciągu ostatnich 3-5min smile.gif
pablo114
No właśnie o to chodzi. Ma swoj czas i zamknie sesje ale to troche potrwa. Chyba, że zmienisz na serwerze długość sesji ale to będzie kończyć nawet tym którzy po prostu długo przebywają na www.
Spawnm
czyli nic nie robią , czyli ich nie ma.
Ew. jeśli to dla ciebie wielki problem to ustaw aby ich wywalało jeśli są offline przez te 5min i po sprawie.
MateuszS
Tworzysz pole w bazie o nazwie np czas_zalogowania w tabeli userów

Sam tego uzywam, mysle ze niczego nie opuscilem

  1. <?php
  2.  
  3. /* plik.php */
  4. /* includujesz to na kazda podstrone na ktora wchodzi zalogowany user */
  5. $czas_zalogowania=60*5 // 5 minut
  6. $czas_aktualny=time();
  7. $czas_przyszly=$czas_zalogowania+$czas_aktualny;
  8.  
  9. $zapytanie=mysql_query("UPDATE `konta` SET `czas_zalogowania`='".$czas_przyszly."' WHERE `ID`='jakies_id_usera'")
  10.  
  11. /* koniec includowanego pliku */
  12.  
  13. ////////////////////////////////////////////
  14.  
  15. /* sprawdzanie.php */
  16. /* sprawdzanie ilosci userow online, kod wlepiamy na stronie ze statystykami */
  17.  
  18. $zapytanie=mysql_query("SELECT * FROM `konta`")
  19.  
  20. $zalogowani=0;
  21. $napis=true;
  22. while($wynik=mysql_fetch_assoc($zapytanie)) {
  23. if($czas_aktualny<=$wynik['czas_zalogowania']) {
  24. $zalogowani++;
  25. }
  26. if($napis==true) {
  27. echo 'Mamy '.$zalogowani.' zalogowanych uzytkownikow';
  28. $napis=false;
  29. }
  30. }
  31.  
  32. /* koniec sprawdzania */
  33. ?>
  34.  
Spawnm
a nie lepiej w sprawdzanie.php dać sql w stylu
  1. $czas_zalogowania=60*5 // 5 minut
  2. $czas_aktualny=time();
  3. $t=$czas_aktualny-$czas_zalogowania;
  4.  
  5. $zapytanie=mysql_query("SELECT count(*) FROM `konta` WHERE czas_zalogowania>=$t ");
MateuszS
Jak kto woli. Tak czy siak dzialac ma, bo mam podobnie u siebie na stronkach i dziala.

Kod pisalem bez sprawdzania, ale mysle autor poradzilby sobie z ewentualnymi poprawkami winksmiley.jpg
posiadacz
cookies?
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.