Php 我写了一个网络计数器,但如何禁用F5以防止数量增加?
我已经写了一个网络计数器,计数器从count.txt中获取数字,并在我访问网络时添加1 但是当我刷新页面时,如何防止它添加1 守则: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 {
<?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。这可能会变得任意复杂,但因为这只是一个页面计数器,而不是一个投票服务,所以“信任”用户就足够了。这就是我在回答中强调“意外”的原因。我是用“正如他所说”来指你的答案的,并且对它投了更高的票。我添加了我的评论,以防他需要增加复杂性,因为不清楚计数器的用途。