Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Licznik
Forum PHP.pl > Forum > Przedszkole
cent4
Witam.
Gdzieś w internecie znalazłem pewien skrypt licznika - mam go na kilku stronach, ale nie wiem dlaczego co jakiś czas licznik się zeruje.
Czas zerowania nie jest taki sam, raz zdarza się to po 3 miesiącach, raz po 6, a raz nawet po 6 dniach :-(.
Nie wiem co w nim jest ni tak...
Czy ktoś może pomóc - lub może ktoś zna niezawodny podobny skrypt (który będzie odporny na przeładowania strony):
  1. <?
  2. //setcookie("licznik","1",time()+30);
  3. setcookie("visited", "1", time()+30); //Wysyła cookie na komputer użytkownika
  4. ?>
  5. .
  6. .
  7. .
  8. if(file_exists("counter.n")){
  9. //Sprawdza czy plik istnieje
  10. $file=fopen("counter.n", "r"); // otwiera plik
  11. $licznik=fgets($file, 1000); //Odczytuje wartość z pliku counter.n
  12. fclose($file); //zamyka plik
  13. if($_COOKIE["visited"]!="1"){ //Sprawdza, czy użytkownik był na stronie
  14. $licznik++; //Zwiększa wartość o jeden tylko po pierwszym wejściu
  15. }
  16. }
  17. else{
  18. $licznik=72480; //jeśli plik nie istnieje, wyświetli się 59256
  19. }
  20.  
  21. $file=fopen("counter.n", "w"); // otwiera plik do zapisu
  22. fwrite($file, $licznik); //zapisuje wartość
  23. fclose($file); //zamyka plik
  24.  
  25. //$licznik = number_format($licznik, 0, "", " ");
  26.  
  27. echo "Jesteś $licznik gościem strony";
  28.  
nospor
Przed zapisem,wypadaloby wpierw sprawdzic, czy jest co zapisac...
  1. if (!empty($licznik)){
  2. $file=fopen("counter.n", "w"); // otwiera plik do zapisu
  3. fwrite($file, $licznik); //zapisuje wartość
  4. fclose($file);
  5. }


W ogole bez sensu jest ciągle zapisywać do pliku. Jak koleś był to nie ma sensu wpisywać tej samej wartosci. Nic dziwnego ze po pewnym czasie coś się wychrzania.
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.