Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z prostym licznikiem
Forum PHP.pl > Forum > PHP
obo
Mam taki kod:

  1. <?php
  2. if((!isset($_COOKIE['licznikowe-ciacho'])) && (!strstr($_SERVER['HTTP_REFERER'], "strona.pl"))) {
  3. $plik = fopen("licznik.txt", "r");
  4. $tekst = fread($plik, filesize("licznik.txt"));
  5. $dane = explode(";", $tekst);
  6. fclose($plik);
  7. $plik = fopen("licznik.txt", "w");
  8. flock($plik, 2);
  9. $dane[0]++;
  10. fwrite($plik, "$dane[0];", 15);
  11. flock($plik, 3);
  12. fclose($plik);
  13. setcookie("licznikowe-ciacho", "zliczono", 0);
  14. }
  15. else {
  16. $plik = fopen("licznik.txt", "r");
  17. $tekst = fread($plik, filesize("licznik.txt"));
  18. $dane = explode(";", $tekst);
  19. }
  20.  
  21. ?>


Problem polega na tym, że dodanie wartośći następuje po odświeżeniu strony. Następuje to tylko raz (ponowne odświerzenie nic nie daje).
Co może być nie tak?
zakręcony
może zanim padnie odpowiedź, to Twoim zdaniem jak działa ten skrypt?

edit: w sensie co powinien i kiedy "robić" winksmiley.jpg
szw
Skrypt działa poprawnie z tego co widze.
Jeśli zastanawia cię czemu po odświeżeniu nie nalicza kolejnego odwiedzenia to wiedz, że to standardowe zachowanie każdego licznika odwiedzin. skrypt sprawdza czy użytkownik już był na stronie ($_COOCKE) jeśli nie to ustawia coockie setcookie("licznikowe-ciacho", "zliczono", 0);po to by licznik nie zliczał odświeżeń strony tylko ilość nowych uzytkowników przeglądających stronę.
krowal
Fakt, jakoś się to zliczanie dziwnie odbywa smile.gif po co ten średnik na końcu pliku, po co explode... itp.. A licznik się nie zwiększa bo tak został napisany skrypt tzn. jeśli licznik się zwiększa to zostaje na komputerze osoby odwiedzającej zapisane ciasteczko, jeśli ta sama osoba klikając w linki na stronie będzie sobie po niej buszowała to przy każdym odświeżeniu strony jest sprawdzane czy takie ciastko już istnieje, jeśli tak to nic się nie dzieje.
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.