Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Licznik dzienny
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
blown
Witam,
szukam skryptu, który będzie zliczał dzienne wejścia czytelników tzn. dzisiaj w środe pokaże wszystkie wejścia i o godz. 24 się wyzeruje. W czwartek pokaże wszystkie wejścia 24 zeruje itd. Znalazłem coś takiego:

  1. <?php
  2. $dzien=date("l");
  3. $dzien=strtolower($dzien);
  4. $path="dni/";
  5. $confirm=$HTTP_COOKIE_VARS["licz"];
  6.  
  7. $_temp=Array(
  8. "monday" => "sunday",
  9. "thuesday" => "monday",
  10. "wednesday" => "thuesday",
  11. "thursday" => "wednesday",
  12. "friday" => "thursday",
  13. "saturday" => "friday",
  14. "sunday" => "saturday"
  15. );
  16.  
  17.  
  18. for($i=0;$i<=$dzien;$i++){
  19. if(($dzien)&&(!@file_exists($path."$dzien.txt"))&&(!isset($confirm)))
  20. {
  21.  
  22. $ustaw=fopen($path."$dzien.txt","w");
  23. chmod($path."$dzien.txt",0666);
  24. fclose($ustaw);
  25.  
  26. $poniedzialek=file($path."$dzien.txt");
  27. $stan=$poniedzialek[0]+1;
  28. $poniedzialek=fopen($path."$dzien.txt","w");
  29. flock($poniedzialek,2);
  30. fwrite($poniedzialek,$stan);
  31. flock($poniedzialek,3);
  32. fclose($poniedzialek);
  33.  
  34. @unlink($path."$_temp[$dzien].txt");
  35. setcookie("licz","odslona",time()+3600*24);
  36. echo "$stan";
  37.  
  38. }
  39.  
  40. elseif(($dzien)&&(@file_exists($path."$dzien.txt"))&&(!isset($confirm)))
  41. {
  42.  
  43. $poniedzialek=file($path."$dzien.txt");
  44. $stan=$poniedzialek[0]+1;
  45. $poniedzialek=fopen($path."$dzien.txt","w");
  46. flock($poniedzialek,2);
  47. fwrite($poniedzialek,$stan);
  48. flock($poniedzialek,3);
  49. fclose($poniedzialek);
  50. setcookie("licz","odslona",time()+3600*24);
  51. echo $stan;
  52.  
  53. }
  54.  
  55. elseif(($dzien)&&(@file_exists($path."$dzien.txt"))&& isset($confirm))
  56. {
  57.  
  58. $plik=fopen($path."$dzien.txt","r");
  59. flock($plik, 1);
  60. $line=chop(trim(fgets($plik,15)));
  61. flock($plik, 3);
  62. fclose($plik);
  63. echo $line;
  64.  
  65. }
  66. }
  67. ?>


tylko, że po każdym odświeżeniu liczba rośnie zamiast się zatrzymać. Kombinowałem już z cookie ale nic mi nie chce z tego wyjść potrzebuje pomocy.
tzm
Nie wiem czy potrzebujesz to na stronie w której użytkownicy się logują, czy korzystasz z bazy...

Ale jeśli już chcesz korzystać z cookie to patrz:

Pierwsze wejście na stronę niech poza zwiększeniem licznika tworzy także ciasteczko z ustawioną datą ważności na różnice czasu między aktualną godziną, a godziną o której się licznik resetuję. W ciastku ustaw parametr - visit = 1 czy coś takiego i wchodząc na stronę, zanim licznik zacznie działać sprawdzaj ifem czy w ciastku istnieje zmienna visit i jeśli ma wartość 1 niech nie robi nic.

No i to tyle.
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-2024 Invision Power Services, Inc.