Как избежать повтора ввода данных по REFRESH

McLighter
Дата: 18.09.2006 11:50:43
Есть форма с данными, после отправки данных, если нажать Refresh в браузере то теже данные опять пересылаются, как это убрать?
В тоже время если пользователь опять заполняет форму темиже данными, то эти данные должны отослаться.
Sergey Egorov
Дата: 18.09.2006 12:45:48
А ты просто, когда записал данные в БД. сделай редирект страницы.
McLighter
Дата: 18.09.2006 12:56:55
А если пользователь нажмет НАЗАД потом ВПЕРЕД данные снова обновятся.
Sergey Egorov
Дата: 18.09.2006 13:06:18
почемуже они обновятся.
У тебя pначений $_POST or $_GET уже на этот момент не будет.
slmark
Дата: 18.09.2006 13:07:54
McLighter
Есть форма с данными, после отправки данных, если нажать Refresh в браузере то теже данные опять пересылаются, как это убрать?

Использовать header(). А вопрос обсуждался сотни раз. Воспользуйся поиском, обязательно что-нибудь найдешь. Также смотрим тут.
McLighter

В тоже время если пользователь опять заполняет форму темиже данными, то эти данные должны отослаться.

Ну, это уже тебе думать :)
Спасибо.
*
Дата: 19.09.2006 08:17:58
slmark
Ну, это уже тебе думать :)
Неочем там думать.
McLighter
Дата: 21.09.2006 11:35:29
Наверно я плохо описал свою ситуацию.
У меня интернет магазин.
Когда из каталога добавляешь товар, попадаешь в корзину.
если там нажать обновить, данные товара снова приходят и соответственно кол-во товара увеличивается, что неправильно. МНЕ ЭТО НЕ УБРАТЬ! Потому как я оставляю возможность покупателю потом в каталоге еще раз купить этот товар, при этом соответственно в корзину еще один такой же код товара не добавляется, а только увеличивается его кол-во. НУ И конечно оставляю возможность менять кол-во товара в самой корзине.


Как защитиися от REfresh просто не представляю.
LabNIT
Дата: 21.09.2006 11:43:30
После того как данные из формы вы занесли в БД, переадресуйте пользователя на другую страницу, или на эту же страницу, но без дополнительных параметров.

<?
...
header ("Location: http://www.labnit.ru"); // Переадресация на страницу
...
?>

Модератор: Перестаньте выкладывать внешние ссылки, не относящиеяся к теме вопроса!
4m@t!c
Дата: 21.09.2006 11:49:08
Как предотвратить повторную отправку данных на сервер при нажатии “refresh” в браузере?
----------------------------------------
Артисты не приехали, приехали цыгане
McLighter
Дата: 21.09.2006 13:49:41
Похоже что кроме Header других решений не бывает. ОК.
Попробую сделать как вы советуете. Просто не хотел так делать раньше потому что вся корзина находится в файле который включается include'ом в основной index. А теперь придется в начале index'а прописывать доп.условие для header, что конечно не очень будет красиво в плане структуры кода и его читаемости.

Всем спасибо!