Forum Webscript.Ru

Программирование => PHP => Тема начата: от 20 Сентября 2001, 14:22:25

Название: Как запретить повторный submit в формах??
Отправлено: от 20 Сентября 2001, 14:22:25
Когда допустим в гостевой книге ламер отправляет сообщение и связь х.., то он ест-но жмёт ещё и ещё, а проге-то по-хер, она делает копии одного и того же...

Как етого избежать, что народ присоветует???
Название: Как запретить повторный submit в формах??
Отправлено: AliMamed от 20 Сентября 2001, 14:48:12
проверять - если идентично предыдущему сообщению - не сохранять
Название: Как запретить повторный submit в формах??
Отправлено: Ilya от 20 Сентября 2001, 15:27:46
В дополнение к этому можно поставить javascipt:







Название: Как запретить повторный submit в формах??
Отправлено: от 20 Сентября 2001, 16:00:23
Merci откликнувшимся....

 2 AliMamed:::

Конкретнее, если можно.. Каким макаром я узнаю предыдущее сообщение?
Название: Как запретить повторный submit в формах??
Отправлено: NAS от 20 Сентября 2001, 16:44:41
Цитировать
Сообщение от Murka (автор)
Merci откликнувшимся....

 2 AliMamed:::

Конкретнее, если можно.. Каким макаром я узнаю предыдущее сообщение?


Запросто. Перед сохранением нового сообщения, считай последнее сохраненное и сравни с введенным.
Название: Как запретить повторный submit в формах??
Отправлено: AliMamed от 20 Сентября 2001, 17:13:02
ну прочитаешь последнее сообщение оттуда, где у тебя они храняться
Название: Как запретить повторный submit в формах??
Отправлено: Murka от 21 Сентября 2001, 09:27:07
Так ведь батенька ето лишяя операция, открывать файлы  и т.д.... :-) А нельзя ли воспользоваться http-заголовками????:D
Название: Элементарно :)
Отправлено: от 21 Сентября 2001, 19:34:16
Самое простое - если это конечно или делать после нажатия клавиши Send - disable , или вообще ее делать невидимой :)
Или весто input type-submit - делать просто button, при нажатии на который проверять переменную скажем отправлено/нет и если нет - то form.submit() :)
или устанавливать кукис в документе сроком жизни в минуту например и при нажатии проверять.
В своем же скрипте обязательно проверка реферера
Название: Как запретить повторный submit в формах??
Отправлено: BigHarry от 25 Сентября 2001, 18:54:58
Контрольную сумму считать - и искать ее в б/д гостевой книги.
А гасить кнопки после сабмита жабой - не есть хорошо, так как сабмит может на самом деле не состоятся.
Название: Как запретить повторный submit в формах??
Отправлено: VaV от 29 Сентября 2001, 15:00:43
если форма передается как get и номер записи не автоинкременируется то от повторного выполнения скрипта можно получать тот же ответ что и от подобных
лучше генерить для каждой формы уникальный идентификатор с привязко к ip и не позволять высказываться более одного раза в день это же не форум.
или поставить куку типа уже все передано и попробуйте еще раз завтра например или сессиями
Название: Как запретить повторный submit в формах??
Отправлено: MyCom от 29 Сентября 2001, 22:58:47
Необходимо создать лог-файл, в котором при добавлении записи  фиксируется, IP и дата, после которой можно добавлять. (к примеру через 20 сек). А при проверке доб.записи, проверка на данный IP и удаление прошедших по дате IP.
Название: Как запретить повторный submit в формах??
Отправлено: VaV от 06 Октября 2001, 12:19:46
не лог файл а сессии через mysql }:>
Название: Как запретить повторный submit в формах??
Отправлено: от 09 Октября 2001, 17:33:47
Э, ребята, вы чего-то мудрите тут.
Все решается просто.
В скрипте после обработки POST делается редирект на этот же урл.
Название: Как запретить повторный submit в формах??
Отправлено: Skyer от 06 Апреля 2004, 16:23:57
И вы эту тему в ФАК поместили? Я так и не понял, как запретить повторный submit. У меня никаких печений и сессий не используется, и а повторные записи запретить надо. При этом проверки на равенство есть, но в случае с рефрешем они обходятся, и запись всё равно добавляется.

Редирект выход неплохой, но я бы хотел осуществлять все изменения на одной странице.
Название: Как запретить повторный submit в формах??
Отправлено: hanslinger от 06 Апреля 2004, 16:35:39
Ну и кто тебе мешает? Делай добавление при $_GET[\'action\']==\'add\', например, а потом редирект без всякого гета.
Название: Как запретить повторный submit в формах??
Отправлено: Skyer от 06 Апреля 2004, 17:02:33
hanslinger
Не понимаю. Куда это писать, что это делает, почему "GET"? (у меня все данные через POST передаются)
Название: Как запретить повторный submit в формах??
Отправлено: hanslinger от 06 Апреля 2004, 17:29:41
В теге
в поле "action" пишешь "script.php?action=add". В своем скрипте пишешь

if ($_GET[\'action\']==\'add\')
{
//добавляешь сообщение
header("location:script.php");
}
//тут выводится форма добавления и сама гостевая с сообщениями

Ничего сложного.
Название: Как запретить повторный submit в формах??
Отправлено: Меняздесьдавнонет от 06 Апреля 2004, 17:38:55
Цитировать
Skyer:
Редирект выход неплохой, но я бы хотел осуществлять все изменения на одной странице.

а на ту же самую страницу тебе религия не позволяет редирект сделать?
или что-то другое?
Название: Как запретить повторный submit в формах??
Отправлено: Меняздесьдавнонет от 06 Апреля 2004, 17:40:32
Цитировать
hanslinger:
В теге в поле "action" пишешь "script.php?action=add". В своем скрипте пишешь

это совершенно лишнее.
Название: Как запретить повторный submit в формах??
Отправлено: AlieN от 06 Апреля 2004, 17:40:54
Небольшая правочка

if ($_GET[\'action\']==\'add\')
{
//добавляешь сообщение
header("location:script.php");
exit(); // думаю не надо объяснять зачем она
}
//тут выводится форма добавления и сама гостевая с сообщениями
Название: Как запретить повторный submit в формах??
Отправлено: hanslinger от 06 Апреля 2004, 17:43:59
RomikChef если это совершенно лишнее, то тогда

if ($_POST)
{
//добавляешь сообщение
header();
exit();
}