Aron Rotteveel's Включите уникальный жетон на каждый POST , который работал для меня Однако моя форма все еще отправляется, когда пользователь обновляет страницу (F5). Мне удалось решить эту проблему, добавив сброс:
// reset session token
$_SESSION['token'] = md5( $_POST['token'] . time() );
мой последний сценарий выглядит так:
if (isset($_SESSION['token'])) {
if (isset($_POST['token'])) {
if ($_POST['token'] != $_SESSION['token']) {
echo '<h3>Oops! You already submitted this request.</h3>';
} else {
// process form
// reset session token
$_SESSION['token'] = md5( $_POST['token'] . time() );
}
} else {
echo 'post token not set';
$_SESSION['token'] = md5( $somevariable . time() );
}
}
ой! не забудьте добавить session_start();
до <!DOCTYPE>
Я новичок в PHP, поэтому, пожалуйста, исправьте меня, если вы обнаружите ошибки.