Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
После отправки формы, СКРИПТОМ ОБРАБОТКИ отправки выводится сообщение о том что данные успешно отправлены. Но при обновлении этой страницы в брауере, выскакивает сообщение о том что данные будет повторно отправлены... Некоторые браузеры просто тупо еще раз шлют данные на сервер. И потом получается то что на сриншоте http://itmages.ru/image/view/4444099/7c7023ac Есть стандартный вариант, способ решения этой пробл3емы: Вычислить мд5 из остылаемых данных и записать в строку таблицы вместе с сообщением. И каждый раз при отправке сначала проверять наличие мд5 в таблице. Но может кто предложит вариант получше, или просто другой. Есть идея что после отправки надо сделать редирект на страницу сообщения об успегной отправке. Но для этого нужно иметь эту страницу. ИЛИ редирект на страницу с параметром гет (?send=ok). Вообщем я хочу увидеть разные варианты решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2016, 16:55 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
aliskin, зачем Вам разные варианты? Post/Redirect/Get — Википедия Модель поведения веб-приложений, используемая разработчиками для защиты от повторной отправки данных веб-форм (от т. н. double submit problem). Модель PRG обеспечивает интуитивно понятное поведение веб-приложений при обновлении страниц в браузере и при использовании закладок в браузере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2016, 16:59 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
aliskinЕсть идея что после отправки надо сделать редирект на страницу сообщения об успегной отправке.Можно, конечно, но не обязательно. Достаточно редиректить "на саму себя", на ту же самую страницу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2016, 17:12 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
skyANAaliskin, зачем Вам разные варианты? . ??? как "зачем". Хочу знать, просвещаться и развиваться ;:). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2016, 17:16 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
aliskinskyANAaliskin, зачем Вам разные варианты? . ??? как "зачем". Хочу знать, просвещаться и развиваться ;:). Там на Вики ссылки есть - почитайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2016, 17:32 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
Сделал следующее: 1. 2. После отправки и записи данных, редирект на этот скрипт обработка формы, но с ГЕТ параметром (его значение не имеет никакого значения, эээ тоесть значение этого параметра нигде и никак не используется). Код: php 1. А потом (указано в ответе 1.) Код размещен в начале скрипта обработки формы (форм). Код: php 1. 2. 3. 4. 5. И никаких сканирований таблиц, никаких дополнительных полей в таблицах, никаких лишних переменных в формах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2016, 21:38 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
Фтопку этот ваш гет-параметр. До перезагрузки страницы сохранить признак успешной отправки можно в сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2016, 22:47 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
можно и так, но "Кто как хочет, так и делает" ;%)) --- Я же могу сказть что фтопку эту вашу сессию. --- ИТОГ: Уже все решил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2016, 23:19 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
*Я же тоже могу сказать: "фтопку эту вашу сессию". %; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2016, 23:20 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
aliskin, Да говорите, конечно же, на то он и форум. Только аргументы изложите, пожалуйста, чем лучше Ваш вариант. Для сравнения. Если добавить в закладки или послать другу УРЛ страницы с "?sent=1", что будет при открытии страницы? Наверно, "Ваше сообщение успешно отправлено". Немного странно, на мой взгляд. И, теперь, те же действия при передаче сообщения об успешной отправке уведомления через с сессию. Есть сессионная переменная установлена - отдаём "успешно отправлено" (или "не отправлено", это уж по ситуации), нет переменной - отдаём пустую форму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2016, 23:50 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
aliskinИ никаких сканирований таблиц, никаких дополнительных полей в таблицах, никаких лишних переменных в формах. Прям архитектор :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 00:25 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
vkle, сессию фтопку. Мы же пишем высоконагруженные системы и у нас не один бекенд-сервер :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 00:28 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
skyANA, о, тады да! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 00:33 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
Запись в сессию это лишнее обращение к диску. И если после отправки данных и записи их в тбл записать триггер в сессию, то потом что??? Все равно нужно показать некую станицу (редирект). И на этой странице все равно нужно проверить этот триггер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 02:14 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
vklealiskin, Для сравнения. Если добавить в закладки или послать другу УРЛ страницы с "?sent=1", что будет при открытии страницы? Наверно, "Ваше сообщение успешно отправлено". Немного странно, на мой взгляд. та, да. как-то не таво. Может что-то изменю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 02:19 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
skyANAПрям архитектор :) от вам смешно ;%)) что бы вы без меня делали? Грустили бы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 02:23 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
А что будет если после отправки формы, пользователь в новой вкладке еще раз захочет отправить форму, а сессионный тригер отправки уже будет указывать на то что польхователь уже отправлял форму? хм-м... нужно подумать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 02:30 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
кажись уже придумал. нужно еще во сне обдумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 02:45 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
aliskinА что будет если после отправки формы, пользователь в новой вкладке еще раз захочет отправить форму, а сессионный тригер отправки уже будет указывать на то что польхователь уже отправлял форму? хм-м... нужно подумать... Скорее всего пользователь захочет не того, что Вы ему понаделаете. Основная мысль книги - проектирование взаимодействия должно предшествовать программированию. В ней показаны общие принципы, которыми надо руководствоваться, чтобы интерфейс был качественным. И главное - есть несколько конретных примеров проектирования, хорошо иллюстрирующих, чего можно добиться применяя теорию Алана Купера на практике. Как определиться для кого вы разрабатываете своё приложение? Какие цели преследуют ваши пользователи? Как удовлетворить их требования? Всё это вы можете узнать из книги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 08:34 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
skyANAaliskinЗапись в сессию это лишнее обращение к диску. что не так? или вы не знаете где на стороне сервера хранятся переменные сессии? http://itmages.ru/image/view/4446368/4b3c9f57 повторяюсь, но не потому что сам не знаю как решить, а потому что без ГЕТа тут я решения не вижу. автор А что будет если после отправки формы, пользователь в новой вкладке еще раз захочет отправить форму, а сессионный тригер отправки уже будет указывать на то что польхователь уже отправлял форму? Если есть какое-то другое решении без ГЕТа, то напишите (или не пишите %)) У меня тот же код что указан в 6 сообщении этой темы, но перед редиректом устанавливается сессионный трригар отправки формы. В условии if добавочно проверяется этот сессионный триггер отправки формы. В коде еще не реализовано. После обеда начну писать. --- О проэктировании: У меня все как-бэ параллельно как-то катится (идет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 10:57 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
дочитался http://phpclub.ru/talk/threads/пример-обработки-формы.8683/ Код: php 1. незн. нужно что-то выбрать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 11:11 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
aliskinне потому что сам не знаю как решить, а потому что без ГЕТа тут я решения не вижу. автор А что будет если после отправки формы, пользователь в новой вкладке еще раз захочет отправить форму, а сессионный тригер отправки уже будет указывать на то что польхователь уже отправлял форму? Если есть какое-то другое решении без ГЕТа, то напишитеПодробно, очень подробно прорабатывайте сценарии взаимодействия пользователя и приложения. Ваш случай довольно простой. На сервер пришел запрос методом GET и нет переменной в триггере - отдаём пустую форму. Запрос методом POST - обрабатываем данные формы, по результатам ставим в триггере переменную с информацией (успех, в данном случае). Редирект "на себя". Запрос GET и в триггере инфо об успехе - обнуляем триггер и отдаём клиенту инфо об успехе. Всё! Конечно, если до пользователя нужно донести ОЧЕНЬ важное сообщение, которое пользователь ни в коем разе не должен пропустить, то такой способ не годится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 12:02 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
csrf токен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 12:03 |
|
||
|
Запрет повторной отправки формы
|
|||
|---|---|---|---|
|
#18+
[quot vkle]aliskinКонечно, если до пользователя нужно донести ОЧЕНЬ важное сообщение, которое пользователь ни в коем разе не должен пропустить, то такой способ не годится. потому что сообщение будет показано один раз. (?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 13:27 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=39258572&tid=1461022]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 367ms |

| 0 / 0 |
