php очистить post после отправки
Заголовок запроса содержит некоторые данные POST. Независимо от того, что вы делаете, когда вы перезагружаете страницу, rquest будет отправлен снова.
Постарайтесь как можно больше разделить (в разных файлах) сценарий просмотра (главным образом, html) из вашего сценария контроллера (бизнес-логика и т. Д.). Таким образом, вы всегда отправляете данные в отдельный скрипт контроллера и затем перенаправляете обратно в сценарий вида, который при визуализации не будет содержать данных POST в заголовке запроса.
Простое решение PHP для этого:
это общий вопрос здесь.
Вот ссылка на аналогичный вопрос. Вы можете увидеть мой ответ. Почему POST [‘submit’] устанавливается при перезагрузке?
Основной ответ – посмотреть в post / redirect / get, но так как это проще увидеть на примере, просто проверьте ссылку выше.
Чтобы пользователи не обновляли страницу или не нажимали кнопку «Назад» и не возвращали форму, я использую следующий аккуратный небольшой трюк.
Данные POST теперь находятся в сеансе, и пользователи могут обновлять все, что захотят. Он больше не будет влиять на ваш код.
$ _POST должен заполняться только по запросам POST. Браузер обычно отправляет запросы GET. Если вы достигли страницы через POST, она обычно спрашивает вас, следует ли ей повторно отправлять данные POST при нажатии обновления. То, что он делает, просто то, что снова отправляет данные POST. Для PHP, который выглядит как другой запрос, хотя он семантически содержит одни и те же данные.
это сработало для меня
Вы не можете, это обрабатывается браузером, а не каким-либо языком программирования. Вы можете использовать AJAX для запроса или перенаправления пользователя на ту же (или другую) страницу.
Вы должны добавить директиву no cache в свой заголовок:
Моя обычная техника для этого:
Вы также можете передать начальный URL-адрес страницы, чтобы установить кнопку «Назад».
Таким образом, вам просто нужно логически мыслить и сделать это идиотским доказательством для ваших пользователей …
«Лучший» способ сделать это – отправить / перенаправить / получить
После отправки сообщения заголовок 302, указывающий на страницу успеха
Я вижу, что это старая нить, просто подумал, что я дам свои 2центы. Не уверен, что это будет соответствовать каждому сценарию, но это метод, который я успешно использовал в течение нескольких лет:
Не действительно удаляет POST-ed значения из браузера, но, насколько ваш сценарий php ниже этих строк, больше нет POST-переменных.
Это работает для меня:
Вы можете сделать это следующим образом:
Это перезагружает страницу с сервера. Очень важно логическое «истинное». Это сработало для меня!
Как можно обнулить форму после отправки?
Есть форма ввода данных с аттачем в ПХП-файле:
В общем, проблема заключается в том, что после отправки формы, при обновлении страницы, письмо повторно отправляется.
Не могу разобраться, как сделать обнуление формы и как применить GET-редирект.
Может кто поделится дельным советом?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как очистить форму после отправки?
Всем доброго дня и приятных выходных. Ситуация следующая: пишу простую форму с отправкой данных.
Скрыть форму после отправки
Привет всем! Подскажите пожалуйста что нужно изменить в этом коде чтобы после отправки форма.
Если письмо отправлено успешно, просто делай редирект на эту же страницу.
Если письмо отправлено успешно, просто делай редирект на эту же страницу.
Огромное спасибо! Всё разабрался! Этот пример подошёл! Ещё раз спасибо.
Если письмо отправлено успешно, просто делай редирект на эту же страницу.
Что-то как-то не стыкуется Может быть ещё какую-нибудь идейку подкините либо инструкцию (желательно поподробней)?
Ок, заработало Огромное спасибо! И последний вопрос, можно как-то осуществить чтобы сообщение выводилось в pop-up окно?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Печаль Не приходит письмо после отправки через форму на сайте
Доброго времени суток Уважаемые форумчане! Оговорю сразу, не силен в php, да и вообще в.
Как реализовать форму отправки данных на почту?
Как реализовать форму отправки данных на почту при помощи HTML и PHP как на картинке? Мне нужна вот.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
как удалить все данные в скаипе
как удалить все данные в скаипе
Как удалить все данные из конкретной таблицы?
все сказано в заголовке, естественно надо чтоб таблица осталась, может как-то можно по другому еще.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как удалить данные из массива
сообственно, вот структурка, которую надо очистить, после добавление в нее елементов struct.
Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все элементы данного массива с четными номерами, во второ
Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все.
Как без array_unique удалить из одного массива все значения, которые совпадают с значениями второго массива
Всем привет, не подскажете как без array_unique удалить из одного массива все значения, которые.
Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый массив переписать все четные
Помогите сделать данную программу: Удалить из массива целых чисел все нули. Сформировать два новых.
Очистка данных формы после отправки в PHP
Я застрял в точке очистки данных формы. После того, как пользователь отправляет форму, данные добавляются в базу данных. Это хорошо, пока здесь. Но если пользователь обновляет страницу, ранее введенные данные снова заносятся в базу данных. Я использую почтовый метод для отправки данных. Я не использую AJAX. Вся страница перезагружается после отправки данных для. Пожалуйста, помогите мне с этим. Если есть какой-либо способ очистить данные формы после отправки, чтобы после обновления страницы данные не добавлялись в базу данных, ответьте на этот вопрос.
8 ответов
После вставки данных выполните перенаправление:
После перенаправления обновление не приведет к повторной вставке данных.
Чтобы показать скрытый div, вы можете сделать функцию:
И используйте функцию следующим образом:
Если вы используете POST вместо GET в качестве свойства action в вашей форме, то обновление страницы результатов не приведет к повторной отправке формы (некоторые браузеры могут предлагать такую возможность, но они по умолчанию не должны этого делать).
Лучше всего иметь в форме скрытое поле уникального идентификатора, чтобы вы могли знать, когда вы получаете форму, которая была отправлена более одного раза, и ваша программа может игнорировать ее.
Большинство людей используют URL для отправки формы в, а затем перенаправляют обратно в исходную форму. Это может быть тот же URL.
Попробуйте использовать сеансы. Установите переменную сеанса, чтобы записывать, отправил ли пользователь уже форму.
Поместите это в начало вашего кода (это должно быть на каждой странице):
А затем, когда они отправляют форму, установите переменную сеанса:
$ _ SESSION [‘form_submitted’] = true;
Вот ссылка на учебник по сессиям: Учебник
Создайте уникальный ключ при создании HTML-формы и установите для этого ключа скрытое поле в форме. Сохраните ключ вместе с данными и не сохраняйте данные, если ключ уже присутствует в базе данных.
Если вы выбираете метод перенаправления, не забудьте добавить кристалл после перенаправления, чтобы дать веб-серверу команду остановить выполнение скрипта.
После вставки в базу данных вызовите метод unset (), чтобы очистить данные.
снята с охраны ($ _ POST);