Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我写了一个网络计数器,但如何禁用F5以防止数量增加?_Php_Web_Counter - Fatal编程技术网

Php 我写了一个网络计数器,但如何禁用F5以防止数量增加?

Php 我写了一个网络计数器,但如何禁用F5以防止数量增加?,php,web,counter,Php,Web,Counter,我已经写了一个网络计数器,计数器从count.txt中获取数字,并在我访问网络时添加1 但是当我刷新页面时,如何防止它添加1 守则: <?php //Get User's IP if ($_SESSION['your_ip'] != $_SERVER['REMOTE_ADDR']) { $_SESSION['your_ip'] = $_SERVER['REMOTE_ADDR']; $addone = ture; } else {

我已经写了一个网络计数器,计数器从count.txt中获取数字,并在我访问网络时添加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\">";
?>

若要防止意外重复计数,可以使用具有适当有效期的。

若要防止意外重复计数,可以使用具有适当有效期的。

使用会话结束时过期的会话cookie。这样,您就可以测试是否存在一个集cookie,然后运行代码来更新计数器。查看如何使用会话cookies。

使用会话结束时过期的会话cookies。这样,您就可以测试是否存在一个集cookie,然后运行代码来更新计数器。看看如何使用会话cookies。

您不会“禁用F5”!永远,永远!错误的心态@deceze请告诉推特;您还需要一个
会话\u start()
somewhere@decezeOP没有问如何“禁用F5”,只问如何检测它。“我写了一个web计数器,但如何禁用F5以防止数量增加?”你没有“禁用F5”!永远,永远!错误的心态@deceze请告诉推特;您还需要一个
会话\u start()
somewhere@decezeOP没有问如何“禁用F5”,只问如何检测它。正如他所说,“我写了一个网络计数器,但如何禁用F5以防止数量增加?”。如果你想防止重复计算,你也需要跟踪用户IP。这可能会变得任意复杂,但因为这只是一个页面计数器,而不是一个投票服务,所以“信任”用户就足够了。这就是我在回答中强调“意外”的原因。我是用“正如他所说”来指你的答案的,并且对它投了更高的票。我添加了我的评论,以防他需要增加复杂性,因为不清楚计数器的用途。正如他所说。如果你想防止重复计算,你也需要跟踪用户IP。这可能会变得任意复杂,但因为这只是一个页面计数器,而不是一个投票服务,所以“信任”用户就足够了。这就是我在回答中强调“意外”的原因。我是用“正如他所说”来指你的答案的,并且对它投了更高的票。我添加了我的评论,以防他需要增加复杂性,因为不清楚计数器的用途。