ownede
1.10.2009, 19:23:02
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
1.10.2009, 19:33:12
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
1.10.2009, 19:42:43
Cytat(wookieb @ 1.10.2009, 20:33:12 )

Na problem z wylogowaniem nic nie zrobisz.
Czemu? Przecież sesja ma jakiś czas "życia"
wookieb
1.10.2009, 19:49:14
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
1.10.2009, 19:50:02
to co wookieb pisał + data ostatniej wizyty na stronie (f5)
potem wyświetlasz wszystkich co byli aktywni w ciągu ostatnich 3-5min
pablo114
1.10.2009, 19:52:26
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
1.10.2009, 19:55:45
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
1.10.2009, 20:44:50
Tworzysz pole w bazie o nazwie np czas_zalogowania w tabeli userów
Sam tego uzywam, mysle ze niczego nie opuscilem
<?php
/* plik.php */
/* includujesz to na kazda podstrone na ktora wchodzi zalogowany user */
$czas_zalogowania=60*5 // 5 minut
$czas_przyszly=$czas_zalogowania+$czas_aktualny;
$zapytanie=mysql_query("UPDATE `konta` SET `czas_zalogowania`='".$czas_przyszly."' WHERE `ID`='jakies_id_usera'")
/* koniec includowanego pliku */
////////////////////////////////////////////
/* sprawdzanie.php */
/* sprawdzanie ilosci userow online, kod wlepiamy na stronie ze statystykami */
$zalogowani=0;
$napis=true;
if($czas_aktualny<=$wynik['czas_zalogowania']) {
$zalogowani++;
}
if($napis==true) {
echo 'Mamy '.$zalogowani.' zalogowanych uzytkownikow'; $napis=false;
}
}
/* koniec sprawdzania */
?>
Spawnm
1.10.2009, 21:01:14
a nie lepiej w sprawdzanie.php dać sql w stylu
$czas_zalogowania=60*5 // 5 minut
$t=$czas_aktualny-$czas_zalogowania;
$zapytanie=mysql_query("SELECT count(*) FROM `konta` WHERE czas_zalogowania>=$t ");
MateuszS
1.10.2009, 21:05:27
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
posiadacz
1.10.2009, 21:48:51
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.