简单的PHP点击计数器递增2?

时间:2011-04-06 19:46:51

标签: php increment hitcounter

我为一个网络应用程序制作了一个点击计数器,但我很困惑为什么它会增加两个。我只是从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 个答案:

答案 0 :(得分:4)

我想说最合乎逻辑的解释是你的PHP脚本被调用了两次。

使用Firebug的网络标签,查看浏览器调用的内容。

一个典型示例是<img>标记,其中为空src:浏览器会将空src点视为当前页面 - 并重新加载当前网址。


作为旁注:不是读取文件而只是将其写回,您应该以读/写模式打开文件并锁定它,以避免并发写入 - 请参阅flock()

基本上,由于您已经在r +模式下打开文件,因此您应该使用fgets()之类的内容来读取它 - 而不是file_get_contents()