Я хотел бы избежать двойного представления формы или нежелательной отправки при первом нажатии ссылки на форму, которая выводит пустые данные.php двойная форма отправить предупреждение
Код, который мне удалось найти there, по-видимому, предотвращает двойную или одну пустую форму или предыдущую форму, но также препятствует отправке формы при ожидании.
Основные части кода, как показано ниже, все части в одном файле php.
<?php
session_start();
$_SESSION['token'] = md5(session_id() . time());
?>
<!DOCTYPE HTML>
...
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" name="form_submitted">
<input type="hidden" name="token" value="<?php echo $_SESSION['token'] ?>" >
<input type="checkbox" name="catexp[]" value="1">Input1
<input type="checkbox" name="catexp[]" value="2">Input2
<input type="checkbox" name="catexp[]" value="3">Input3
<input type="Submit" name="Submit" >
</form>
<?php
if (isset($_SESSION['token']))
{
if (isset($_POST['token']))
{
if ($_POST['token'] != $_SESSION['token'])
{
// double submit
}
else
{
// FORM PROCESSING HERE
}// else ($_POST['token'] == $_SESSION['token'])
} // if (isset($_POST['token']))
} // if (isset($_SESSION['token']))
?>
Что нужно сделать для того, чтобы обработка формы выполнялась в состоянии?
Tkanks Паскаль
Одна идея заключается в хэш-ключ $ _POST, значения и хранить хэш в сеансе, используйте этот хэш-значение, чтобы проверить, если его тот же самый старый значение, которого следует избегать. Вы либо создаете свой собственный хеш-метод, либо ищете его. – MTahir