Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Błędy w kodzie? Licznik się zeruje.
Zagiewa
post
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 12.08.2009

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


Witam. Mam problem i nie mam pojęcia co go powoduje. Mam napisany prosty licznik gości oparty na ciasteczkach. Licznik jest odporny na odświeżanie ale nalicza raz jeszcze jeśli np. zamkniemy przeglądarkę i uruchomimy ją raz jeszcze. Mi to wystarcza jednak nie wiedzieć czemu licznik co jakiś czas po prostu się zeruje. Nie mam pojęcia co może być powodem tym bardziej, że zerowanie jest zupełnie przypadkowe tzn. nigdy nie wiadomo kiedy i w jakich okolicznościach następuje. Prosił bym was o sprawdzenie kodu.
  1. <?php
  2.  
  3. $plik = "licz.txt";
  4. if (isset($_COOKIE['licznikgosci'])) {
  5.  
  6. $open = fopen($plik, "r");
  7. $wartosc = fread($open, filesize($plik));
  8. fclose($open);
  9. }else {
  10.  
  11. setcookie("licznikgosci", "1");
  12. $open = fopen($plik, "r");
  13. $wartosc = fread($open, filesize($plik));
  14. fclose($open);
  15. $wartosc = $wartosc + 1;
  16. $open = fopen($plik, "w");
  17. fwrite($open, $wartosc);
  18. fclose($open);
  19. }
  20.  
  21. ?>

Nie wiem czy to ma znaczenie ale dodam, że dla pliku są ustawione prawa na 644. Z góry dziękuję.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zagiewa
post
Post #2





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 12.08.2009

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


Odświeżam temat. Dopiero teraz bo za dużo pracy na głowie i ciężko było znaleźć chwile. Dziękuję za rady i obecnie kod wygląda tak. Proszę o ew. uwagi.
  1. <?php
  2.  
  3. if (isset($_COOKIE['licznikgosci'])) {
  4.  
  5. $wartosc = intval(trim(file_get_contents('licz.txt')));
  6. }else {
  7.  
  8. setcookie("licznikgosci", "1");
  9. $wartosc = intval(trim(file_get_contents('licz.txt')));
  10. $wartosc++;
  11. $dodaj = file_put_contents('licz.txt', $wartosc);
  12. }
  13.  
  14. ?>

cudny - wyczytałem, że funkcja file_get_contents jak i file_put_contents sama otwiera i zamyka pliki więc pozbycie się fopen, fclose no i fwrite było poprawne?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 18:20