0

Web カウンターを作成しました。カウンターは count.txt から取得した数値を取得し、Web にアクセスすると 1 を追加します。

しかし、ページを更新したときに1を追加しないようにするにはどうすればよいですか?

コード:

<?php
//Get User's IP
    if ($_SESSION['your_ip'] != $_SERVER['REMOTE_ADDR']) {
        $_SESSION['your_ip']  = $_SERVER['REMOTE_ADDR'];
        $addone = ture;
    }
    else {
        $addone = false;
    }
//Get the number stored in "count.txt"
    $fp = fopen("count.txt",'r');
    while(!feof($fp)) {
        $buf .= fgets($fp,1024);
    }
    fclose($fp);
//Convert $buf into number and add 1
    if ($addone == ture) {
        $buf = intval($buf) + 1;
    }
//Replace the number in count.txt by $buf
    $fp = fopen("count.txt",'w');
    fputs($fp,$buf);
    fclose($fp);
//Break $buf
    $num1 = intval($buf/100000000);
    $buf = $buf%100000000;
    $num2 = intval($buf/10000000);
    $buf = $buf%10000000;
    $num3 = intval($buf/1000000);
    $buf = $buf%1000000;
    $num4 = intval($buf/100000);
    $buf = $buf%100000;
    $num5 = intval($buf/10000);
    $buf = $buf%10000;
    $num6 = intval($buf/1000);
    $buf = $buf%1000;
    $num7 = intval($buf/100);
    $buf = $buf%100;
    $num8 = intval($buf/10);
    $buf = $buf%10;
    $num9 = intval($buf/1);
    $buf = $buf%1;
//Display result
    echo "<img src=\"elements/num_".$num1.".png\">";
    echo "<img src=\"elements/num_".$num2.".png\">";
    echo "<img src=\"elements/num_".$num3.".png\">";
    echo "<img src=\"elements/num_".$num4.".png\">";
    echo "<img src=\"elements/num_".$num5.".png\">";
    echo "<img src=\"elements/num_".$num6.".png\">";
    echo "<img src=\"elements/num_".$num7.".png\">";
    echo "<img src=\"elements/num_".$num8.".png\">";
    echo "<img src=\"elements/num_".$num9.".png\">";
?>
4

2 に答える 2

2

セッションが終了すると有効期限が切れるセッション Cookie を使用します。そうすれば、設定された Cookie が存在するかどうかをテストしてから、コードを実行してカウンターを更新できます。セッション Cookie の使用方法については、php.net を参照してください

于 2013-10-08T14:19:20.587 に答える
2

偶発的な二重カウントを防ぐために、適切な有効期間を持つCookieを使用できます。

于 2013-10-08T14:18:47.617 に答える