未设置$ _POST不起作用

时间:2013-06-13 14:38:35

标签: php post xdebug

这是我的代码 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)

这意味着它被设置了吗?

2 个答案:

答案 0 :(得分:2)

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

要做的最好的事情是设置会话值并设置第一次turnOver发送,然后检查。

答案 1 :(得分:2)

你说

  

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

执行

后,这是一个正常的游戏
$_SESSION["turnNumber"]++;

每次刷新时都会加1。更多行前

unset($_POST["turnOver"]);    

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