簡體   English   中英

簡單的PHP點擊計數器遞增2?

[英]Simple PHP hit counter incrementing by two?

我為一個網絡應用程序做了一個點擊計數器,但我很困惑為什么它增加了兩個。 我只是從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;

我想說最合乎邏輯的解釋是你的PHP腳本被調用了兩次。

看一下瀏覽器調用的內容,例如使用Firebug的Net選項卡。

一個典型的例子是帶有空src<img>標簽:瀏覽器會將空src指向當前頁面 - 並重新加載當前URL。


作為旁注:不是讀取文件而只是將其寫回,您應該以讀/寫模式打開文件並鎖定它,以避免並發寫入 - 請參閱flock()

基本上,因為你已經在r +模式下打開文件,你應該使用類似fgets()東西來讀取它 - 而不是file_get_contents()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM