В моей форме есть токен, который сохраняется в сеансе и должен присутствовать при отправке формы:
$token = hash('sha256', rand() . microtime() . $_SERVER['REMOTE_ADDR']) // rand as possible
$_SERVER['token'] = $token;
Теперь в форме у меня есть скрытое значение:
<input type="hidden" name="token" value="<?php echo $token;?>">
Когда я отправил эту форму, я проверяю, совпадает ли она с токеном в сеансе:
if ($_POST['token'] !== $_SESSION['token'])
{
// show error here
}
else
{
//carry on normally
}
Однако что произойдет, если пользователь заполнит форму неправильно?Я не могу изменить токен снова в сеансе, потому что вывод уже отправлен.Что вы предлагаете?