Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Aktywni użytkownicy, sesje?
ownede
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 2
Dołączył: 14.03.2009

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


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





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




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.
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(wookieb @ 1.10.2009, 20:33:12 ) *
Na problem z wylogowaniem nic nie zrobisz.

Czemu? Przecież sesja ma jakiś czas "życia" (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
wookieb
post
Post #4





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




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





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




to co wookieb pisał + data ostatniej wizyty na stronie (f5)
potem wyświetlasz wszystkich co byli aktywni w ciągu ostatnich 3-5min (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
pablo114
post
Post #6





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.07.2007

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


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





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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.
Go to the top of the page
+Quote Post
MateuszS
post
Post #8





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


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.  
Go to the top of the page
+Quote Post
Spawnm
post
Post #9





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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 ");
Go to the top of the page
+Quote Post
MateuszS
post
Post #10





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


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 (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował MateuszScirka 1.10.2009, 21:08:01
Go to the top of the page
+Quote Post
posiadacz
post
Post #11





Grupa: Zarejestrowani
Postów: 46
Pomógł: 2
Dołączył: 2.04.2009

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


cookies?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 15:10