Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z licznikiem, na plikach, sam się kasuje
Gniewko
post
Post #1





Grupa: Zablokowani
Postów: 13
Pomógł: 0
Dołączył: 11.04.2004
Skąd: Szczecin

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


Mam nieznany mi problem z licznikiem opartym na plikach. Skrypt licznika:

  1. <?php
  2. $count_arr = file('counter_all');
  3. $count = trim($count_arr[0]);
  4.  
  5. if($_COOKIE['counter'] == 'yes')
  6. {
  7. $count_all = $count;
  8. }
  9. else
  10. {
  11. setcookie('counter', 'yes', time()+(60*60*24));
  12. $count_all = $count+1;
  13.  
  14. $file_counter = fopen('counter_all', 'w');
  15. flock($file_counter, LOCK_EX);
  16. fputs($file_counter, $count_all);
  17. flock($file_counter, LOCK_UN);
  18. fclose($file_counter);
  19. }
  20. ?>


Problem polega na tym, że co jakiś czas licznik się kasuje. Ma dzień wcześniej jakąś wartość, a na drugi dzień, jakby naliczał od nowa. No jestem pewien, że to z powodu czyiś ustawień w przeglądarce, które są w stanie mi nadpisać plik z nieprawidłową wartością.

I mój problem, czyli jak uniknąć takiego błędnego zapisywania, lub chociaż jakie to są ustawienia w przeglądarce które wszystko psuja?
Go to the top of the page
+Quote Post
Chewolf
post
Post #2





Grupa: Zarejestrowani
Postów: 335
Pomógł: 0
Dołączył: 15.11.2003

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


Bardzo często taki problem jest przy stronach na których jest duży ruch ... Choć używasz blokania plików więc coś takiego nie powinno zaistnieć... Przy bazach danych nie ma takich problemów ;-)
Spróbuj tak:
  1. <?php
  2. $count = join(file('counter_all'));
  3. if($_COOKIE['counter'] == 'yes'){
  4.     $count_all = $count;
  5. }
  6. else{
  7.     setcookie('counter', 'yes', time()+(60*60*24));
  8.     $count_all = $count+1;
  9.  
  10.     $file_counter = fopen('counter_all', 'w');
  11.     flock($file_counter, LOCK_EX);
  12.     fputs($file_counter, $count_all);
  13.     flock($file_counter, LOCK_UN);
  14.     fclose($file_counter);
  15. }
  16. ?>


Ten post edytował m5910 16.10.2004, 19:12:14
Go to the top of the page
+Quote Post
Gniewko
post
Post #3





Grupa: Zablokowani
Postów: 13
Pomógł: 0
Dołączył: 11.04.2004
Skąd: Szczecin

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


No coż. Spróbuje...

To jak to jest z tym blokowaniem, blokuje czy w końcu nie? Skoro to jest częsty błąd, może coś z tym zrobic?
Go to the top of the page
+Quote Post

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 Aktualny czas: 21.08.2025 - 02:06