Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 780
от 01.10.2007, 15:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 432, Экспертов: 56
В номере:Вопросов: 1, Ответов: 3


Вопрос № 103452: Здравствуйте ув. эксперты У меня такой вопросик. После отправки данных через форму методом POST, например, добавление сообщения в гостевую книгу, как мне заблокировать повтор добавления при нажатии на кнопку "обновить страницу"?...

Вопрос № 103.452
Здравствуйте ув. эксперты

У меня такой вопросик. После отправки данных через форму методом POST, например, добавление сообщения в гостевую книгу, как мне заблокировать повтор добавления при нажатии на кнопку "обновить страницу"?
Отправлен: 26.09.2007, 14:56
Вопрос задал: Zotaper (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Kruphi
Здравствуйте, Zotaper!

1) Этот вариант встречается на многих форумах - После получения данных хранить ip-адрес (лучше сессию) отправителя и в течении N секунд (например 10-20) запрещать повторную отправку любых сообщений

2) Более трудоемкий вариант (с точки зрения загрузки сервера) - Проверять поступающие данные (возможно вкупе с ip-адресом отправителя или данные сессии) и сравнивать с уже полученными данными. Если полное совпадение - не добавлять.
Ответ отправил: Kruphi (статус: 2-ой класс)
Ответ отправлен: 26.09.2007, 15:13
Оценка за ответ: 2
Комментарий оценки:
Очень интересный ответ, но похоже вы меня не поняли или вы не сталкивались с подобным. Предлагаемые вами методы слишком уж сложны для простой операции и заставили меня порыться в литературе и найти этот способ, я его уже раньше находил, но просто забыл где и из-за этого задал вопрос.
А решение очень просто: его описал второй отвечающий.
Вам 2!

Отвечает: Бородин Александр Олегович
Здравствуйте, Zotaper!
Лучше всего, на мой взгляд, так сделать. После добавления всех данных в хранилище(я имею в виду таблицу или файл, просто не знаю, в чем Вы сообщения храните) нужно переадресовать браузер функцией header на какую-либо страницу, скорее всего, на эту же - только в урл надо добавить какой-нибудь доп. параметр. Тогда при нажатии кнопки "обновить" данные по новой добавляться не будут.
Естественно, перед вызовом функции header в браузер не должны выкидываться никакие данные, иначе переадресации не произойдет.
Дополнительно можно при отправке блокировать кнопку отправки формы.
---------
Ничто не сближает людей так, как совместное преступление.
Ответ отправил: Бородин Александр Олегович (статус: 10-ый класс)
Ответ отправлен: 26.09.2007, 17:50
Оценка за ответ: 5
Комментарий оценки:
Отличный ответ, то что надо, правда пока Вы отвечали, я уже сам в литературе нашел его. Огромное Вам спасибо за то, что потрудились ответить!

Отвечает: K0rvin
Здравствуйте, Zotaper!
Для этого можно использовать редирект либо промежуточную страницу с сообщением, как на многих форумах.
Ответ отправил: K0rvin (статус: 2-ой класс)
Ответ отправлен: 28.09.2007, 13:49


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.60.05 от 27.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное