Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]inkrementacja w pliku - czy bezpiecznie
Forum PHP.pl > Forum > Przedszkole
Kuba707
  1. if(!isset($_COOKIE['licznikoweciastko']) && !strstr($_SERVER['HTTP_REFERER'], $webname)) {
  2. $f = fopen($filename, "r");
  3. $text = fread($f, filesize($filename));
  4. $wartosclicznika = explode(";", $text);
  5. fclose($f);
  6. $f = fopen($filename, "w");
  7. $wartosclicznika[0]++;
  8. fwrite($f, $wartosclicznika[0].';');
  9. fclose($f);
  10. setcookie("licznikoweciastko", "zaliczono", 0);
  11. }


To skrypt do liczenia odwiedzin. Czy widzicie tu jakąś lukę? Po 27 tysiącach inkrementacji jakieś ... nie pamiętam ile, ale powiedzmy z 12 razy w ciągu tych 27k inkrementacji w ciągu 4 lat licznik potrafił się zresetować (dobrze że mam historie każdego wejścia i jestem w stanie to za każdym razem zliczyć tongue.gif).
redeemer
Konkurencyjność.

Wchodzi dwóch użytkowników prawie w tym samym czasie, zaraz po tym jak u jednego wykonuje się kod $f=fopen($filename, "w") czyszcząc zawartość pliku, drugi użytkownik
czyta zawartość tego pliku i co dostaje wink.gif ?. Spróboj flock lub użyj bazy danych.

Ps. Po co dodawać ten średnik i robić explode?
Kuba707
Tak chyba zrobię z tym flock.

Po co dodawać? Pisałem to dawno i sugerowałem się poradnikiem tongue.gif
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.