Как запретить обновление страницы

Platon_82

Новичок
Как запретить обновление страницы

У меня есть такая ситуация:
пользователь заполняет форму. Информация вставляетсяв базу и выводятся данные пользователю которые он ввел.
Если нажимаешь ф5, то дублируется вставка в базу.
Как этого избежать?

Думал использовать перенаправление с помощью Header, но тут гетом придется много данных передавать. Получается только гет спасет?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Platon_82
но тут гетом придется много данных передавать
Хм... Это еще почему?

Поиском по форуму пользоваться пробовал?
 

Апокалипсис

тех дир matras.ru
1. Юзер заполняет форму нажимает отправить.
2. Данные пишутся в БД. (можно также проверять на дублёж)
3. После записи переадресация куда нибудь.
 

GrayHound

Новичок
причём тут интересно Header и гет? Думается после удачного занесения в базу идёт Header("Location: somewhere");
 

MiRacLe

просто Чудо
PHP:
<?php
echo "Если ты, **** *****, **** и ******* попробуешь обновить страницу, то тебе  *********** . ***** и *****. С уважением Мамалыга и Бетон.";
?>
 

Larson

Новичок
Эх, не нужно ничего никому запрещать и передавать все записи гетом. После записи данных в БД перенаправляй страницу, указывая один параметр - идентификатор новой записи. Далее по нему заново выбираешь данные и рисуешь страницу.
 

Pigmeich

Новичок
Platon_82
Неправильно подходишь к вопросу.

Не "запретить", а "оградить".

Злоумышленник и так найдет твою мега-форму отправки в базу и начнет спамить. Тебе придется ставить капчу, при записи делать капчу невалидной, что не позволить выполнив запрос дважды, дважды записать в базу.

А обычного пользователя нужно ограждать от неверного F5.

Смотри, распишем действия происходящии по запросу:
1. Пользователь забивает форму.
2. Скрипт разбирает форму.
3. Скрипт пишет в базу.
4. Скрипт выводит ответ, что все получилось.

Пользователю по F5 ожидает только четвертого. Соответсвенно, страница на которой он висит, должна делать только четвертое.
 
Сверху