Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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自动刷新?_Php - Fatal编程技术网

防止使用php自动刷新?

防止使用php自动刷新?,php,Php,我有一个基于文本的游戏,这是我用php/html从头创建的第一个网站。最近,我的玩家发现他们可以在某些页面上留下一个自动刷新,然后继续增加他们的统计数据。我已经意识到,有很多页面,他们可以离开自动刷新,只是通过作弊变得难以置信的强大 我想知道是否有什么方法可以在不影响游戏性的情况下防止自动刷新。可以使用验证码,但它们会严重影响游戏的可玩性,因为它们几乎出现在每一页上 我能想到的最好的方法就是简单地防止刷新,所以用户获得奖励的唯一方法就是单击按钮 目前我使用POST,如果只是刷新一下,是否可以阻止

我有一个基于文本的游戏,这是我用php/html从头创建的第一个网站。最近,我的玩家发现他们可以在某些页面上留下一个自动刷新,然后继续增加他们的统计数据。我已经意识到,有很多页面,他们可以离开自动刷新,只是通过作弊变得难以置信的强大

我想知道是否有什么方法可以在不影响游戏性的情况下防止自动刷新。可以使用验证码,但它们会严重影响游戏的可玩性,因为它们几乎出现在每一页上

我能想到的最好的方法就是简单地防止刷新,所以用户获得奖励的唯一方法就是单击按钮


目前我使用POST,如果只是刷新一下,是否可以阻止POST工作

使用post/redirect/get模式:

if ($_POST) {
   // Execute code (such as database updates) here.

   // Redirect to this page.
   header("Location: " . $_SERVER['REQUEST_URI']);
   exit();
} 

防止表单重新提交:您可以在表单中添加一个隐藏变量,该变量具有日期时间值或唯一字符串。如果重新处理具有相同隐藏变量的表单,则可以忽略它it@Serpes听起来很完美。我要试一试!编辑如何添加隐藏变量@Daan我能做到,但那意味着我要把1页变成3页,换成10页。或者这就是我必须要做的吗?@Ben你可以在一页纸上完成看看下面我的答案。这个解决方案与@Serpe的结合是最好的途径。