2 / 0 / 0
Регистрация: 28.08.2012
Сообщений: 73

Как защититься от повторной отправки формы

18.05.2015, 15:43. Показов 3650. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Перечитал кучу информации, предлагают либо редирект, либо сессии. помоготи сделать чтобы хоть что-то заработало. Пытался с редиректом, но error постоянно
koj.zip
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2015, 15:43
Ответы с готовыми решениями:

Как избежать повторной отправки формы?
Пробовала после получения данных формы и их обработки header('Location: /file.php'); но выдает ошибку - Cannot modify header information -...

Отмена повторной отправки формы
Добрый день! У меня такая казалось бы тривиальная задача но никак не могу сообразить как сделать. У меня есть форма обычная постовская с...

защита от повторной отправки формы
Как вы думайте в чем недостаток такой защиты от повторной отправки формы? if(isset($_SESSION)) //блокируем повторную отправку если ip...

11
 Аватар для Dorbah
5 / 5 / 3
Регистрация: 21.09.2011
Сообщений: 46
18.05.2015, 15:52
Может в php при открытии формы записывать в базу уникальный idшник(как бы начинать транзакцию) и в htmlку его передавать в скрытом поле, а потом проверять, правильный idшник пришёл или нет и в базу писать нужную инфу и второй раз форму с этим idшником не записывать.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
18.05.2015, 15:55
Обычно делается так:
В сессию пишется сообщение (или массив сообщений, не важно), затем происходит перенаправление назад.
Там сообщения из сессии выводятся и удаляются (т.е. одноразовые сообщения получаются).
Вот и всё. И повторной отправки формы не будет.
1
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
18.05.2015, 21:01
Все что написано выше все не правильно
Форма сама по себе не отправляется.
1. Умудриться продублировать отправку форму (частая ошибка кто знакомится с js) можно только отправив ее с помощью js при этом не отменив поведение по умолчанию
JavaScript
1
2
3
4
$( "#muform" ).submit(function( event ) {
  
  event.preventDefault(); // отменяет событие по умолчанию
});
2. Вариант это когда вы несколько раз навешиваете одинаковых обработчиков
В вашем коде нет формы и не понятно как вы ее отправляете
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
18.05.2015, 21:14
Никакими js'ами там и не пахнет... Думаю речь идет о том, когда пользователь обновляет страницу, форма с method=post пытается отправиться повторно...
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
18.05.2015, 21:21
pav1uxa, а ну поясни как это при обновлении страницы форма может сама отправится без нажатия кнопочки submit или js
Во ... живая форма
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
18.05.2015, 21:25
Цитата Сообщение от Poznakomlus Посмотреть сообщение
а ну поясни как это при обновлении страницы форма может сама отправится без нажатия кнопочки submit или js
Как обычно читаешь между слов...

1. Я не говорил что она отправляется сама. Я сказал что предлагает отправить повторно.
2. Спокойно без кнопочки submit и без js.
HTML5
1
2
3
<form method="post">
    <input type="submit">
</form>
Нажми кнопочку submit. А потом нажми F5. Может быть так поймешь о чем речь...
1
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
18.05.2015, 21:30
Цитата Сообщение от pav1uxa Посмотреть сообщение
А потом нажми F5
это поведение броузеров, каждый из них при этом по разному реагирует тем более, зачастую спрашивает отправить ли повторно данные. Без подтверждения пользователя данные не уйдут
Если надо очистить форму то autocomplete
Пусть Т.С. представит весь код(пояснения), тогда будет понятнее
0
Заблокирован
18.05.2015, 23:06
Вот чтобы браузеры не пытались что-то там спрашивать при нажатии на F5, используется перенаправление.
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
18.05.2015, 23:20
Цитата Сообщение от Июнь Посмотреть сообщение
Вот чтобы браузеры не пытались что-то там спрашивать при нажатии на F5, используется перенаправление.
И у пользователя в браузере есть стрелочка вперед, назад и что
Форма отправленная без js и не фрейме автоматом делает переход на страницу указанную в атрибуте action(загружая страницу, указанную в теге action)
Какое еще пере направление, че это за костыль в проектирование при отправке фрормы
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
18.05.2015, 23:56
Цитата Сообщение от Poznakomlus Посмотреть сообщение
И у пользователя в браузере есть стрелочка вперед, назад
вот именно по этому принято после обработки пост запросов делать редирект, тогда в историю обработчик формы не попадет, чтобы пользователь случайно повторно не отправил форму.
1
Заблокирован
19.05.2015, 00:09
Цитата Сообщение от Poznakomlus Посмотреть сообщение
Форма отправленная без js и не фрейме автоматом делает переход на страницу указанную в атрибуте action(загружая страницу, указанную в теге action)
Какое еще пере направление, че это за костыль в проектирование при отправке фрормы
А по F5 браузер делает повторный POST-запрос к этой странице. Этот "костыль" предусмотрен протоколом. Почитайте про код ответа 303. Никто не заставляет вас использовать этот "костыль", однако очень часто он позволяет существенно улучшить юзабилити.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.05.2015, 00:09
Помогаю со студенческими работами здесь

проблема повторной отправки данных
У меня есть страница с аутентификацией пользователя (через тэг &lt;form&gt;). В случае удачной аутентификации пользователь попадает на другую...

Защита от повторной отправки POST-данных
браузер кэширует _POST. Если рефрешнуть то пост данные остануться, а значит сработает код еще раз. Надо после того, как 1 рах отправили...

Как очистить данные после отправки формы ?
Всем привет, давно уже болит такой вопрос, как очистить htm форму после отправки? Очистить форму нужно после приема и обработки данных....

Как сделать редирект после отправки формы
Привет всем, подскажите плиз, как сделать редирект на страницу &quot;Спасибо за сообщение&quot;, после того как была отправлена форма. Вот...

Как вернуться на предыдущию страницу после отправки формы!
Я создал форму и отправил к обработчику форма &lt;form class=&quot;helpdevelop&quot; action=&quot;/main/forms/forhelpdev.php&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru