0

ユーザーが「次のターン」ボタンを押すと、 $_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"]);、ユーザーが「次のターン」ボタンを押した後にこのブロックを1回だけ実行したいのですが、これはユーザーがページを更新するたびに実行されます(これは $_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 に答える