Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Licznik online
Forum PHP.pl > Forum > Przedszkole
Lethys
Mam kod :

  1. <?php
  2. include ("config.php");
  3. $nump = @mysql_num_rows(mysql_query("select * from players"));
  4. print "Gracze: $nump<br>";
  5.  
  6. $psel = mysql_query("select * from players");
  7. $ctime = time();
  8. while ($pl = mysql_fetch_array($psel)) {
  9. $span = ($ctime - $pl[lpv]);
  10. if ($span <= 180) {
  11. $numo = ($numo + 1);
  12. }
  13. }
  14. print "Online: $numo";
  15.  
  16. ?>


Licznik dziala ale problem w tym ze osoba online znika z liczka po 3 min, powinno byc chyba po tym jak sesja wygasnie ale wszystko dziala a osoby online nie ma.
potreb
Znika po 3 minutach bo masz tak ustawione.
Zobacz sobie np ten przykład http://www.webtips.pl/post4184.html
Lethys
Mam problem z tym licznikiem.

Skrytp logowania:

  1. <?php
  2.  
  3. ....
  4.  
  5. print "&nbsp;<br>Witamy ponownie. Proszę kliknąć <a href=gazeta.php>tutaj</a> aby przejść dalej.";
  6.  
  7. $stat = mysql_fetch_array(mysql_query("select * from players where user='$user' and pass='$pass'"));
  8.  
  9. if(!($stat['id']==0))
  10. {
  11. $ip=$_SERVER['REMOTE_ADDR']; // pobieranie ip od usera
  12. $id=$stat['id']; //id uzytkownika (w moim przypadku wedlug rejestracji [nadane id])
  13. $data=date("dmYHis");
  14.  
  15. $pytanie=mysql_query("SELECT * FROM online WHERE id='$stat[id]' ");
  16. $czyjest=mysql_num_rows($pytanie);
  17. if($czyjest==1) //sprawdzanie czy uzytkownik jest juz w tabeli licznika
  18. {
  19. mysql_query("UPDATE online SET (data='$data') WHERE id='$stat[id]' "); //jezeli tak to nadpisujemy rekord
  20. }
  21. else
  22. {
  23. mysql_query("INSERT INTO online (id, ip, data) VALUES('$id', '$ip', '$data')"); //jezeli tak to dodajemy rekord
  24. }
  25. }
  26.  
  27.  
  28.  
  29. }
  30.  
  31.  
  32. .....
  33.  
  34. ?>


A teraz odczytywanie z bazy:

  1. <?php
  2.  
  3. $stat = mysql_fetch_array(mysql_query("select * from players where user='$user' and pass='$pass'"));
  4.  
  5. $ip=$_SERVER['REMOTE_ADDR']; // pobieranie ip od usera
  6. $id=$stat['id']; //id uzytkownika (w moim przypadku wedlug rejestracji [nadane id])
  7. $data=date("dmYHis"); //aktualna data
  8. $czas = date("dmYHis")-500;
  9. $query=mysql_query("SELECT * FROM online WHERE data > '$czas'");
  10. $ilosc = mysql_num_rows($query);
  11. print "Online : $ilosc ";
  12.  
  13. ?>


Wszystko zgodnie z tutorialem a nie dziala sad.gif
anonim1133
ja mam to tak rozwiązane:
  1. <?php
  2. $czas = time();
  3. $czas_minuta = time()-60;
  4. $query = "SELECT id FROM `statystyki` WHERE `czas` < $czas AND `czas` > $czas_minuta";
  5. ?>

ofc trzeba mieć w tabeli też zapisany time() zamiast date().
Lethys
Po przerobkach i twojej radzie mam kod w pliku ktory sie za kazdym razem odswieza ale i tak cos nie dziala sad.gif

  1. <?php
  2. if(!($stat['id']==0))
  3. {
  4. $ip=$_SERVER['REMOTE_ADDR']; // pobieranie ip od usera
  5. $id=$stat['id']; //id uzytkownika (w moim przypadku wedlug rejestracji [nadane id])
  6. $czas = time();
  7.  
  8. $pytanie=mysql_query("SELECT * FROM online WHERE id='$stat[id]' ");
  9. $czyjest=mysql_num_rows($pytanie);
  10. if($czyjest==1) //sprawdzanie czy uzytkownik jest juz w tabeli licznika
  11. {
  12. mysql_query("UPDATE online SET (data='$czas') WHERE id='$stat[id]' "); //jezeli tak to nadpisujemy rekord
  13. }
  14. else
  15. {
  16. mysql_query("INSERT INTO online (id, ip, data) VALUES('$id', '$ip', '$czas')"); //jezeli tak to dodajemy rekord
  17. }
  18.  
  19. }
  20.  
  21.  
  22.  
  23.  
  24.  
  25. $stat = mysql_fetch_array(mysql_query("select * from players where user='$user' and pass='$pass'"));
  26.  
  27. $ip=$_SERVER['REMOTE_ADDR']; // pobieranie ip od usera
  28. $id=$stat['id']; //id uzytkownika (w moim przypadku wedlug rejestracji [nadane id])
  29. $czas = time();
  30. $czas_minuta = time()-60;
  31. $query = @mysql_num_rows(mysql_query("SELECT id FROM `online` WHERE `data` < $czas AND `data` > $czas_minuta"));
  32.  
  33.  
  34. print "Online : $query ";
  35. ?>
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.