Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z licznikiem
Morek
post 11.08.2005, 14:23:00
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 28.05.2005

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


Wiem, że tamatów o licznikach było sporo.
Ale mam taki skrypt licznika:

  1. <?
  2. setcookie("odwiedziny", "1", time()+3600*2); 
  3. ?>
  4.  
  5.  
  6. <?
  7.  
  8. if(file_exists("licznik.txt"))  /* sprawdza czy plik istnieje */
  9. { 
  10. $file=fopen("licznik.txt", "r");  /* otwiera plik */
  11. flock($file, 1);  /* blokuje plik */
  12.  
  13. $ile=fgets($file, 100000);  /* odczytuje wartość */
  14.  
  15. flock($file, 3); /* odblokowuje plik */
  16. fclose($file);  /* zamyka plik */
  17.  
  18. if($odwiedziny!="1")  /* sprawdza plik cookie */
  19. {
  20. $ile++; /* zw. wartość o 1 tylko po pierwszym wejściu */
  21. }
  22. }
  23. else
  24. {
  25. $ile=1;  /* jeśli plik nie istnieje wyświetla wartość 1 i tworzy plik */
  26. }
  27.  
  28. $file=fopen("licznik.txt", "w");  /* otwiera plik do zapisu */
  29. flock($file, 2);  /* blokuje plik */
  30.  
  31. fwrite($file, $ile);  /* zapisuje wartość */
  32.  
  33. flock($file, 3);  /* odblokwuje plik */
  34. fclose($file);  /* zamyka plik */
  35.  
  36. ?>



i czasami zdarza się, że gdy stron się wgrywa i ktoś da "odśwież" licznik sie zeruje

W poście Mifczu znalazłem podobny problem i mike_mech poradził by

  1. <?php
  2. if( $visited != "1" ) /* sprawdza, czy użytkownik już odwiedzał stronę */
  3. {
  4. $ile++; /* zwiększa wartość o 1 tylko po pierwszym wejściu */
  5. }
  6. ?>


zmienić na

  1. <?php
  2. if( $_COOKIE[ 'visited' ] != "1" ) /* sprawdza, czy użytkownik już odwiedzał stronę */
  3. {
  4. $ile++; /* zwiększa wartość o 1 tylko po pierwszym wejściu */
  5. }
  6. ?>


ale gdy zamieniam to licznik przestał być odporny na odświeżanie i nie bardzo wiem, gdzie robie błąd?

Jeśli ktoś wie, jak sprawić by licznik był odporny na odswieżanie, nie zerował się tak jak to opisałem i nie potrzebował bazy danych,

lub chociaż gdzie jest błąd w kodzie to PLEASE pomocy!
Będe wdzięczny.

Ten post edytował Morek 11.08.2005, 14:24:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Morek
post 11.08.2005, 21:23:38
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 28.05.2005

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


crash - no właśnie nie, zmieniałem nazwe, i dla tego byłem zdziwiony... Ale i tak dzięki za pomoc.


yavaho - Wielkie dzięki za informacje! Nie wiedziałem o tym, i faktycznie licznik się nie zeruje ale mam jeszcze pytanie... Wiem, że może dziwnie to zabrzmi ale czy on jest odporny na odswieżanie? Bo jak odświeżam stronę to dodaje mi kolejne oczko winksmiley.jpg

Nie bardzo jestem w stanie sam go rozgryźć bo jeszcze niegdy nic na sesjach nie robiłem worriedsmiley.gif

Ten post edytował Morek 11.08.2005, 21:24:13
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 18:00