0

这是我的代码 http://pastebin.com/DtK8MMtU 当用户按下“下一回合”按钮时,$_POST["turnOver"] 正在设置。然后脚本进入本节

 if (isset($_POST["turnOver"])) {
                $_SESSION["state"] = 0;
                unset($_SESSION["rolls"] );
                unset($_SESSION["bet"]);
                unset($_SESSION["nextTurn"]);
                $_SESSION["turnNumber"]++;
                unset($_POST["turnOver"]);    
 }

通过这一行,unset($_POST["turnOver"]);我希望这个块在用户按下“下一回合”按钮后只执行一次,但是每次用户刷新页面时都会执行一次(我通过 $_SESSION["turnNumber"] 值看到了这个,它在我刷新页面时一直在增加) . 此外,这里是来自 xdebug 的 $_POST var_dump:

array (size=1)
  'turnOver' => string ''... (length=9)

意思是设置好了?

4

2 回答 2

2

如果用户正在刷新页面,他们turnOver每次都会发送 POST 值。取消设置帖子只会影响该页面的其余部分。

最好的办法是设置一个会话值并设置第一次turnOver发送的时间,然后检查它。

于 2013-06-13T14:41:55.913 回答
2

你说

我通过 $_SESSION["turnNumber"] 值看到了这一点,它在我刷新页面时一直在增加

这是一个正常的情人,因为你执行

$_SESSION["turnNumber"]++;

这将在每次刷新时继续添加 1。更进一步前行

unset($_POST["turnOver"]);    

$_POST["turnOver"]实际上已设置,因此如果您在 unset() 命令之前尝试 var_dump,您将看到它已设置。

于 2013-06-13T14:43:46.137 回答