Вот мой код 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 "], его все время увеличивается на странице обновления). Кроме того, здесь $ _POST var_dump от xdebug:
array (size=1)
'turnOver' => string ''... (length=9)
Это значит, что оно установлено?
Вы не можете этого сделать. Тем не менее, вы можете проверить, не '' '_SESSION [" state "]' не равно 0, и если оно уже оно, не выполняйте. Когда вы UNSET это только для остальной части исполнения скрипта PHP. Значение, если вы попытаетесь получить доступ к '$ _POST [" turnOver "] после этого, тогда он потерпит неудачу, когда вы удалите его из массива, но он будет повторно отправлен при каждом обновлении. – h2ooooooo
Вы можете включить случайное число с каждой законной почтой. Сохраните это число в переменной сеанса. Убедитесь, что указанное число не совпадает с указанным номером. Если это то же самое, это обновление браузера. – Drew