Forum Webscript.Ru
Программирование => PHP => Тема начата: от 20 Сентября 2001, 14:22:25
-
Когда допустим в гостевой книге ламер отправляет сообщение и связь х.., то он ест-но жмёт ещё и ещё, а проге-то по-хер, она делает копии одного и того же...
Как етого избежать, что народ присоветует???
-
проверять - если идентично предыдущему сообщению - не сохранять
-
В дополнение к этому можно поставить javascipt:
-
Merci откликнувшимся....
2 AliMamed:::
Конкретнее, если можно.. Каким макаром я узнаю предыдущее сообщение?
-
Сообщение от Murka (автор)
Merci откликнувшимся....
2 AliMamed:::
Конкретнее, если можно.. Каким макаром я узнаю предыдущее сообщение?
Запросто. Перед сохранением нового сообщения, считай последнее сохраненное и сравни с введенным.
-
ну прочитаешь последнее сообщение оттуда, где у тебя они храняться
-
Так ведь батенька ето лишяя операция, открывать файлы и т.д.... :-) А нельзя ли воспользоваться http-заголовками????:D
-
Самое простое - если это конечно или делать после нажатия клавиши Send - disable , или вообще ее делать невидимой :)
Или весто input type-submit - делать просто button, при нажатии на который проверять переменную скажем отправлено/нет и если нет - то form.submit() :)
или устанавливать кукис в документе сроком жизни в минуту например и при нажатии проверять.
В своем же скрипте обязательно проверка реферера
-
Контрольную сумму считать - и искать ее в б/д гостевой книги.
А гасить кнопки после сабмита жабой - не есть хорошо, так как сабмит может на самом деле не состоятся.
-
если форма передается как get и номер записи не автоинкременируется то от повторного выполнения скрипта можно получать тот же ответ что и от подобных
лучше генерить для каждой формы уникальный идентификатор с привязко к ip и не позволять высказываться более одного раза в день это же не форум.
или поставить куку типа уже все передано и попробуйте еще раз завтра например или сессиями
-
Необходимо создать лог-файл, в котором при добавлении записи фиксируется, IP и дата, после которой можно добавлять. (к примеру через 20 сек). А при проверке доб.записи, проверка на данный IP и удаление прошедших по дате IP.
-
не лог файл а сессии через mysql }:>
-
Э, ребята, вы чего-то мудрите тут.
Все решается просто.
В скрипте после обработки POST делается редирект на этот же урл.
-
И вы эту тему в ФАК поместили? Я так и не понял, как запретить повторный submit. У меня никаких печений и сессий не используется, и а повторные записи запретить надо. При этом проверки на равенство есть, но в случае с рефрешем они обходятся, и запись всё равно добавляется.
Редирект выход неплохой, но я бы хотел осуществлять все изменения на одной странице.
-
Ну и кто тебе мешает? Делай добавление при $_GET[\'action\']==\'add\', например, а потом редирект без всякого гета.
-
hanslinger
Не понимаю. Куда это писать, что это делает, почему "GET"? (у меня все данные через POST передаются)
-
В теге
-
Skyer:
Редирект выход неплохой, но я бы хотел осуществлять все изменения на одной странице.
а на ту же самую страницу тебе религия не позволяет редирект сделать?
или что-то другое?
-
hanslinger:
В теге
это совершенно лишнее.
-
Небольшая правочка
if ($_GET[\'action\']==\'add\')
{
//добавляешь сообщение
header("location:script.php");
exit(); // думаю не надо объяснять зачем она
}
//тут выводится форма добавления и сама гостевая с сообщениями
-
RomikChef если это совершенно лишнее, то тогда
if ($_POST)
{
//добавляешь сообщение
header();
exit();
}