Простой счетчик обращений PHP с шагом в два раза? - PullRequest
1 голос
/ 06 апреля 2011

Я сделал счетчик посещений для веб-приложения, но не понимаю, почему оно увеличивается на два.Я просто устанавливаю переменную счетчика из файла hitCount.txt, который содержит целое число, и записываю предварительно увеличенное значение обратно в файл.

Код, о котором идет речь:

    // get visit count
    $wag_file = "hitCount.txt";
    $fh = fopen($wag_file, 'r+');
    $wag_visit_count = intval(file_get_contents($wag_file));
    // increment, rewrite, and display visit count
    fputs($fh, ++$wag_visit_count);
    fclose($fh);
    echo $wag_visit_count . $html_br;

1 Ответ

4 голосов
/ 06 апреля 2011

Я бы сказал, что наиболее логичным объяснением является то, что ваш PHP-скрипт вызывается дважды.

Взгляните на то, что вызывает браузер, используя, например, вкладку Net: Firebug .

Типичным примером является тег <img> с пустым src: браузер сочтет пустые src указатели на текущую страницу - и перезагрузит текущий URL.


Как примечание: вместо чтения файла и только затем его обратной записи вы должны открыть свой файл в режиме чтения / записи и заблокировать его, чтобы избежать одновременной записи - см. flock() . * * 1020

По сути, поскольку вы уже открываете файл в режиме r +, вы должны использовать что-то вроде fgets() для чтения из него, а не file_get_contents().

...