Как отключить повторную отправку формы php

Отмена повторной отправки формы

Как отключить повторную отправку формы php. Смотреть фото Как отключить повторную отправку формы php. Смотреть картинку Как отключить повторную отправку формы php. Картинка про Как отключить повторную отправку формы php. Фото Как отключить повторную отправку формы php

Мне часто задают вопросы относительно отмены повторной отправки формы. Например, Вы сделали форму добавления комментария, добавили обработчик на эту же страницу. Затем при добавлении комментария он успешно добавляется, но стоит пользователю нажать F5, как форма будет отправлена ещё раз. А F5 пользователь может легко нажать, если страница будет долго грузиться. В итоге, вместо 1-го комментария будет целых 2, а то и больше. В этой статье я покажу, как этого можно избежать.

Для начала разберём более подробно проблему на примере этого кода:

Нажав на кнопку «Возвести в квадрат«, Вы увидите результат работы скрипта. Но стоит после этого пользователю нажать F5, как скрипт снова будет выполняться. В данном случае, это не так критично, как с добавлением комментарием, однако, зачем нужна лишняя нагрузка на сервер?

А код страницы с формой теперь будет выглядеть так:

Подведу итог того, как отменить повторную отправку формы:

Вот так это делается в простых скриптах. Да и, в сложных, в конечном счёте делается то же самое.

Как отключить повторную отправку формы php. Смотреть фото Как отключить повторную отправку формы php. Смотреть картинку Как отключить повторную отправку формы php. Картинка про Как отключить повторную отправку формы php. Фото Как отключить повторную отправку формы php

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Комментарии ( 11 ):

Или написать в форме action=».»

При таком примере писать придется. Редирект убьет все POSTы

А я делал по проще: в форму добавил скрытый input, в котором храниться случайное число генерирующееся php. А также при генерации оно забивается в сессии. Затем при принятии формы сначала проверяется совпадение числа, и если нет совпадения форма не обрабатывается. Это как скрытая капча, которая сама вводиться

Я сделал так: if (isset($_POST[‘knopka’]))

А меня интересует совсем противоположный вопрос! А как зделать чтоб отправка формы продублировалясь три раза с интервалом в секунду! Какой обрабочик нужно добавить в код?

Здравствуйте. Не очень понял как делать. Изучаю Ваш курс основы PHP. Перепроверил код, но все равно при обновлении страницы комментарий дублируется. А у Вас на видео все нормально, без всяких редиректов. Вот сам код:

Добавить запись

Записи в гостевой книге:

Я конечно извиняюсь, но вы сами то запускали, тестили свои скрипты, во первых после нажатия и отправки запроса белый экран, результаты почему то выводятся в консоле, а во вторых это не работает, т.к. при обновлении данные отправляются повторно. Только что проверил!

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.

Источник

Как отправить форму в php, чтобы она не отправлялась повторно, после обновления страницы

Доброе время суток, уважаемые HABRовчане!

Сегодня тема пойдет об отправке формы на html-страничке, чтобы, при повторном обновлении, она не отправлялась заново в БД.

Не знаю, было ли такое где-то на просторах интернета, но, когда я попыталась найти, а мне было жутко это нужно, причем очень срочно, то я столкнулась с кучей проблем.

Во первых, почти все источники предлагают делать это таким образом:

Но, проблема в нем следующая, если вы, уже где то в начале страницы отправили заголовки, то на вас будут ругаться, мол, «заголовки отправлены, зачем ты хочешь, чтобы я это сделал еще один раз, угомонись!»

Но данные способы были неудобны, возможно, вам покажется, что это наоборот, самый лучший вариант и зачем изобретать велосипед?

Меня же, все способы, встретившиеся на просторах интернета, не устроили. И я решила сделать то, что будет удобно мне и не будет занимать большое количество переменных/времени/ресурсов.
Приступим.

Для начала, создадим простенькую форму.

Затем добавим в форму метод отправки, действие и имя:
Действие будет происходить на другой странице, для удобства и дальнейшей функциональности.

Получается вот такой код:

Затем, мы создаем файлик redir.php и работаем над ним:

Все. Как видите это просто, быстро и удобно!

Источник

Запретить повторную отправку POST запроса при обновлении страницы

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Повторение POST запроса при обновлении страницы
Доброе время суток, может кто-нибудь подсказать можно ли избавиться от повторного отправления POST.

Как отключить повторную отправку формы php. Смотреть фото Как отключить повторную отправку формы php. Смотреть картинку Как отключить повторную отправку формы php. Картинка про Как отключить повторную отправку формы php. Фото Как отключить повторную отправку формы phpПовторный POST при обновлении страницы
Возникла такая проблема: Есть форма, которая добавляет данные в mysql, после чего чуть ниже.

webphp, КАК вывести информацию об ошибке? Если не верно что то заполнено в форме. Писать состояние ошибки в переменную сессии? Как отключить повторную отправку формы php. Смотреть фото Как отключить повторную отправку формы php. Смотреть картинку Как отключить повторную отправку формы php. Картинка про Как отключить повторную отправку формы php. Фото Как отключить повторную отправку формы php

Поэтому грамотный подход разделяет функции чтения/отображения и записи/сообщений в два отдельных скрипта.

Как например это устроено на форуме и вообще практически всюду. Это кто хочет себе нажить проблем, тот старается все в одну кучу запихать.

У меня под ошибки и сообщения выведен целый класс, записываю код ошибки в куку, а js уже показываю что то вроде popup окна с сообщение.
Вобще можно еще сделать глобальную промежуточную страницу, которая в свою очередь будет отображать все сообщения об ошибках и успехах и возвращать юзера на предыдущую страницу, строго и сердито =)

Сами придумали? Откуда браузер узнает о том посте, если вы открыли страницу чтения гетом, или другим постом?

Пост кешируется браузером откуда и обсуждаемый эффект.

Источник

Как предотвратить повторную отправку формы при обновлении страницы (F5 / CTRL + R)

У меня есть простая форма, которая представляет текст в мою таблицу SQL. Проблема в том, что после того, как пользователь отправит текст, он может обновить страницу, и данные снова будут отправлены без повторного заполнения формы. Я мог бы перенаправить пользователя на другую страницу после отправки текста, но я хочу, чтобы пользователи оставались на той же странице.

Я помню, как читал что-то о предоставлении каждому пользователю уникального идентификатора сеанса и сравнивал его с другим значением, которое решило проблему, с которой я столкнулся, но я забыл, где это.

Решение

На моем веб-сайте я буду сохранять сообщение в файле cookie или сеансе, перенаправлять после сообщения, читать файл cookie / сеанс, а затем очищать значение этой переменной сеанса или переменной cookie.

Другие решения

Я также хотел бы отметить, что вы можете использовать подход JavaScript, window.history.replaceState для предотвращения повторной отправки на кнопку «Обновить» и «Назад».

Я все еще рекомендую подход Post / Redirect / Get, но это новое решение JS.

Вы действительно должны использовать шаблон Post Redirect Get для обработки этого, но если вы каким-то образом оказались в положении, где PRG нежизнеспособен (например, сама форма находится во включении, предотвращающем перенаправления), вы можете хешировать некоторые параметры запроса создать строку на основе содержимого, а затем проверить, что вы ее еще не отправили.

Когда форма обработана, вы перенаправляете на другую страницу:

Вы также можете перенаправить на ту же страницу.

если вы делаете что-то вроде комментариев и хотите, чтобы пользователь оставался на той же странице, вы можете использовать Ajax для обработки отправки формы

Используйте заголовок и перенаправьте страницу.

header(«Location:your_page.php»); Вы можете перенаправить на ту же страницу или другую страницу.

Вы можете предотвратить повторную отправку формы через переменную сессии.

Довольно верный способ — внедрить уникальный идентификатор в сообщение и кэшировать его в

Затем в вашем коде сделайте это:

Я нашел следующий обходной путь. Вы можете избежать перенаправления после обработки POST запрос, манипулируя history объект.

Итак, у вас есть HTML-форма:

Когда вы обрабатываете эту форму на своем сервере, вы вместо перенаправления пользователя на /the/result/page путем настройки Location заголовок как это:

Как отключить повторную отправку формы php. Смотреть фото Как отключить повторную отправку формы php. Смотреть картинку Как отключить повторную отправку формы php. Картинка про Как отключить повторную отправку формы php. Фото Как отключить повторную отправку формы php

После обработки POST редактируемые данные, которые вы отображаете, небольшие

Как отключить повторную отправку формы php. Смотреть фото Как отключить повторную отправку формы php. Смотреть картинку Как отключить повторную отправку формы php. Картинка про Как отключить повторную отправку формы php. Фото Как отключить повторную отправку формы php

как вы можете видеть данные формы POST ед process.php скрипт.
Этот скрипт процесс POST редактирование данных и рендеринг /the/result/page однажды с:

В качестве другого решения я прошу запрос функции Mozilla FireFox команда, чтобы позволить пользователям настроить NextPage заголовок, который будет работать как Location заголовок и сделать post/redirect/get шаблон устарел.

Короче. Когда серверный процесс формируется POST данные успешно это:

Браузер в свою очередь, когда увидите NextPage заголовок:

Я думаю, что это было бы замечательно, если бы оно было реализовано, не так ли? =)

Источник

Как убрать повторную отправку формы?

form action = «» method = «POST» > input type = «text» name = «search» placeholder = «Search» > button name = «button-search» id = «button-search» style = «display: inline-block; cursor: pointer; color:#ccc;margin-left: 2px; background: none;border: none» >

Помощь в написании контрольных, курсовых и дипломных работ здесь.

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

Подтвердите повторную отправку формы
Создал форму для отправки сообщения на странице, при перезагрузке постоянно выплывает окно.

Как избежать повторную отправку данных
11

Добавлено через 1 минуту
Jewbacabra, Почему GET?

Добавлено через 3 минуты

Добавлено через 2 минуты
Там же можете и сам поиск выполнять, как написал Jewbacabra.

В объеме разницы никакой. Можно хоть картинку в base64 закодировать и в строке запроса передать. GET запрос может быть закеширован, POST должен обрабатываться всегда.

И конкретно для поиска: если я захочу поделиться результатом, то в случае GET я просто скопирую строку запроса и передам кому надо, с POST так не получится.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Запретить повторную отправку POST запроса при обновлении страницы
Вопрос немного нубский. Но есть страница с формой, юзер вводит какие то данные, и при нажатии на.

Как отключить повторную отправку формы php. Смотреть фото Как отключить повторную отправку формы php. Смотреть картинку Как отключить повторную отправку формы php. Картинка про Как отключить повторную отправку формы php. Фото Как отключить повторную отправку формы phpПочинить повторную отправку формы в ulogin
Нужно убрать повторную отправку формы, при попытке вернуться на предыдущую страницу браузер выдает.

Как отключить повторную отправку формы php. Смотреть фото Как отключить повторную отправку формы php. Смотреть картинку Как отключить повторную отправку формы php. Картинка про Как отключить повторную отправку формы php. Фото Как отключить повторную отправку формы phpКак заблокировать повторную отправку письма
Привет!! как мне сделать чтобы после отправки письмо один раз, потом заблокировать возможность.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *