Предотвращение подачи формы дважды

У меня простая форма php, вот так:

<?php if(isset($_POST['myform'])) // email... else // display form 

проблема в том, что если я обновляю страницу после отправки формы, она будет отправлена ​​дважды. Как я могу предотвратить это?

Solutions Collecting From Web of "Предотвращение подачи формы дважды"

Вы должны выполнить REDIRECT на странице с сообщением о том, что данные были вставлены … и кнопку назад, чтобы вернуться в форму еще раз (если вы хотите) …

Для перенаправления с использованием PHP используйте функцию header :

 header('Location: http://www.example.com/'); 

Выполните перенаправление после того, как данные будут вставлены на страницу подтверждения (может быть сделано с помощью заголовка () , что должно очистить данные POST и разрешить обновление без дублирования содержимого.

В случае, если пользователь имеет задержку, и он несколько раз нажимает кнопку отправки, то, возможно, использует механизм клиентской стороны, используйте js, чтобы отключить кнопку отправки после ее нажатия. но должен будет отобразить сообщение, в котором говорилось примерно что-то вроде: «отправка сообщения … если нет ответа, перезагрузите страницу и повторите попытку».

 session_start(); if (!$_SESSION['REQUEST_TYPE_USER_ID'] == $_POST) { //your code //after the success process $_SESSION['REQUEST_TYPE_USER_ID'] = $_POST; } else { // request duplicated }