Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ilosc osob na stronie
robin101
post 20.10.2004, 21:29:34
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 20.10.2004

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


Witam. Chcialbym zrobic na swojej stronie informacje ile osob aktualnie oglada moja strone. W jaki sposob mozna to zrobic?
Go to the top of the page
+Quote Post
e4you
post 20.10.2004, 21:35:03
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 10.03.2004
Skąd: K-ce

Ostrzeżenie: (50%)
XXX--


  1. <?
  2. $minut=20;
  3. $teraz=time()+60*$minut;
  4. $bazaip = file(&#092;"ip.txt\");
  5. $ile=count($bazaip);
  6. $ip = $_SERVER[&#092;"REMOTE_ADDR\"];
  7.  
  8. for ($i=0;$i<$ile;$i++) {
  9.  $pol = explode(&#092;"`\",$bazaip[$i]);
  10.  if ($pol[2]<time()) {$bazaip[$i]=&#092;"\";}
  11.  if ($pol[1]==$ip) {
  12.  $bazaip[$i]=&#092;"`$ip`$teraz`n\"; $jest=1;
  13.  }
  14. }
  15.  
  16. if ($jest<>1) $bazaip[]=&#092;"`$ip`$teraz`n\";
  17. $f = fopen(&#092;"ip.txt\",\"w\");flock($f,2);
  18. for ($i=0;$i<$ile+1;$i++) {
  19. if ($bazaip[$i]<>&#092;"\") { fwrite($f, $bazaip[$i]); $ileip++;}
  20. }
  21. flock($f,3); fclose($f);
  22.  
  23. echo $ileip;
  24. ?>



ALBO


  1. CREATE TABLE useronline (
  2. timestamp int(15) DEFAULT '0' NOT NULL,
  3. ip varchar(40) NOT NULL,
  4. file varchar(100) NOT NULL,
  5. PRIMARY KEY (timestamp),
  6. KEY ip (ip),
  7. KEY file (file)
  8. );


  1. <?php 
  2. //wypełniamy podstawowe dane o bazie
  3. $server = &#092;"localhost\"; 
  4. $db_user = &#092;"nazwa_uzytkownika\"; 
  5. $db_pass = &#092;"haslo\"; 
  6. $database = &#092;"users\"; 
  7. $timeoutseconds = 300; 
  8.  
  9. //pobieramy aktualny czas
  10. $timestamp = time(); 
  11. $timeout = $timestamp-$timeoutseconds; 
  12.  
  13. //łšczymy się z bazš danych
  14. mysql_connect($server, $db_user, $db_pass); 
  15.  
  16. //zapisujemy dane do bazy
  17. $insert = mysql_query(&#092;"INSERT INTO useronline VALUES
  18. ('$timestamp','$REMOTE_ADDR','$PHP_SELF')&#092;"); 
  19. if(!($insert)) { 
  20. print &#092;"ERROR > \"; 
  21. } 
  22.  
  23. //usuwamy dane, jeżeli goœć opuszcza naszš stronę
  24. $delete = mysql_query(&#092;"DELETE FROM useronline WHERE timestamp<$timeout\"); 
  25. if(!($delete)) { 
  26. print &#092;"ERROR > \"; 
  27. } 
  28.  
  29. //pobieramy wyniki
  30. $result = mysql_query(&#092;"SELECT DISTINCT ip FROM useronline WHERE file='$PHP_SELF'\"); 
  31. if(!($result)) { 
  32. print &#092;"ERROR > \"; 
  33. } 
  34.  
  35. //liczba wierszy = liczba osób online
  36. $user = mysql_num_rows($result); 
  37.  
  38.  
  39. //wyœwietlamy wyniki
  40. if($user == 1) { 
  41. print(&#092;"$user goœć onlinen\"); 
  42. } else { 
  43. print(&#092;"$user goœci onlinen\"); 
  44. } 
  45. ?>


--------------------
"Dla mnie SCHRANZ nigdy nie byl nazwą stulu muzycznego.A raczej określeniem przesterowaniem dzwięków. Czy nawet halasu... Sądzę, że wyroslo nowe pokolenie. które nie chce się identyfikować z techno z trance" - Chris Liebing

www.netklinik.
Go to the top of the page
+Quote Post
robin101
post 20.10.2004, 22:13:10
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 20.10.2004

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


Dzieki. Dziala tak jakbym chcial smile.gif
Go to the top of the page
+Quote Post
yeti
post 21.10.2004, 08:53:09
Post #4





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 12.09.2003

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


Hmm, rejestracja IP jest zawodna. A co z zawodnikami, którzy chodzą na tym samym IP?
Nie jestem specem od sieci, ale wydaje mi się, że np. klienci kablówki na IP prywatnym mają jeden i ten sam numer IP na zewnątrz.


--------------------
pozdrawiam
Krzysiek
Go to the top of the page
+Quote Post
robin101
post 21.10.2004, 10:45:03
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 20.10.2004

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


Dokladnie tak jest ale daje to chociaz orintacyjna ilosc. Zreszta mysle ze malo prawdopodowbe jest zeby na moja strone weszlo kilka osob spod tego samego IP. Ale jakby ktos wiedzial jak mozna to poprawic to bylbym wdzieczny.
Go to the top of the page
+Quote Post
ET
post 21.10.2004, 13:59:28
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.05.2003
Skąd: Kraków

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


Ja też jestem zainteresowany tym tematem, ale chomi troszke o coś innego, dałem osoobny topik to sie moderator wkurzył wiec napisze jeszcze raz tutaj.


Jak zrobić żeby się dało sprawdzić kto jest aktualnie zalogowany na stronie i ile osob jest niezalogowanych. Chodzi mi o takie coś ja np jest na tym forum, wiadomo kto jest w taej chwili na forum, ile osób jest niezalogowanych.
6 użytkownik(ów) aktywny(ch) przez ostatnie 5 minut
3 gości, 3 użytkownik(ów) 0 ukryty(ch)

Wydaje mi się że to trzeba odpowiedznio powiązać z sesjami.

I niechodzi mi o to żeby mi ktoś suchy kod podawał tylko poprostu konstrukcje takiego skryptu opisał. Byłbym wdzięczny za odpowiedź.
Go to the top of the page
+Quote Post
yeti
post 21.10.2004, 17:29:59
Post #7





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 12.09.2003

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


Z zalogowanymi nie ma problemu, skoro ich uwierzytelniłeś, możesz zarejestrować, że są online. A niezarejestrowani, cóż, ja robię to tak, że zapisuję ID sesji zamiast IP.

Więc w naszym przypadku:
1. podczas uwierzytelniania rejestrujesz ID sesji dla każdego logującego się na stronę
2. zapisujesz ID sesji każdego wchodzącego (do tabeli DB , może być taka jak podał e4you), który się nie zalogował (jak się zaloguje to go wywalasz stąd i dajesz do uwierzytelnionych)
3. podczas wyswietlania czyścisz tych, którzy przekroczyli timeout i sprawdzasz ilość zapisanych ID sesji ale różnych od aktualnie zapisanych w tabeli uwierzytelnionych.

robin101 jest to nawet bardzo prawdopodobne, bo np. pół warszawskiej asterki zasuwa na tym samym IP


--------------------
pozdrawiam
Krzysiek
Go to the top of the page
+Quote Post
ET
post 21.10.2004, 17:49:54
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.05.2003
Skąd: Kraków

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


Dzięki yeti, o coś takiego mi chodziło exclamation.gif!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 19:14