Добрый вечер, подскажите, пожалуйста, каким образом можно защитить форму от повторной отправки. Есть форма, с валидацией полей и каптчей. Если валидация прошла успешно, то данные, введенные в форму отправляются, но если, к примеру, нажать на кнопку F5, то данные, введенные в форму будут отправлены снова. Как с таким бороться?
Обновлять страницу после записи данных Добавлено спустя 1 минуту 14 секунд: Почему на другую? Можно на ту же редиректить
Вопрос снимается. Нашел три решения: 1. Делать unset сессии каптчи ("что забыл сделать изначально"). 2. Реализовать паттерн проектирования "Post/Redirect/Get", тобишь делать редирект сразу после отправки формы. 3. Добавить в форме скрытое поле, значение которого будет проверятся. По сути, это защита от CRSF, но пока не до конца понял нюансы проверки...
По редиректу есть один вопрос. После выполнения 302-го редиректа на эту же страницу, каким образом можно сообщить отправителю статус?
Добавь в строку запроса какую-нибудь переменную и по ней отлавливай была ли отправлена форма, если была, то выведи чонить типа - запрос отправлен и всё такое...