Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Как сбросить значение переменных _POST


Автор: UnDead 28.2.2009, 21:47
Привет всем форумчанам.

Я недавно начал работать с php.

Такая проблема возникла. Есть пхп скрипт с формой. Форма служит для добавления добавления сообщения в гостевую книгу. Значения из формы передаю этому же скрипту. Потом я обрабатываю эти значения и добавляю новое сообщение в гостевую книгу. Как мне скинуть значения этих переменных? Проблема в том что если обновить страницу нажать F5 то запись добавляется ещё раз, так как значения переменных не изменились.

зы. если вопрос тупой, или это уже где то обсуждалось то сильно не карать smile

Автор: Photon 28.2.2009, 21:59
UnDead,  неправильно мыслите.
Запись добавляется еще раз потому, что при обновлении страницы повторно отправляются данные формы..
PHP-скрипт выполняется один раз и не хранит переменные между выполнениями (ну если не используются сессии или cookie)

Автор: UnDead 28.2.2009, 22:12
Photon,
Дак в том и прикол. Я жму кнопку добавить сооьщение. Из формы передаются данные, скрипт их обрабатывает и добавляет сообщение в базу. Поля ввода все очищаются. Жму обновить и опять добавляется точно такое же сообщение. Причём переменная которая хранит значение нажатия кнопки тоже сохраняется.

Автор: Photon 28.2.2009, 22:28
UnDead,  абсолютно неважно, что поля формы очистились..  При обновлении страницы через F5 повторно отправляются уже отправленные данные формы..  Браузер помнит, что данная страница получилась в результате отправки данных формы и повторяет эту операцию..

Автор: UnDead 28.2.2009, 22:40
А как от этого избавится, если вообще это возможно?

Автор: skyboy 28.2.2009, 23:11
редирект. можно - на ту же страницу.
т.к. редирект происходит с отправкой только GET-данных, то после редиректа обновление страницы в браузере не приведет к повторной отправке данных формы.

Автор: iAnthony 28.2.2009, 23:57
Но если пользователь нажмет Back, то случится то, от чего пытались избавиться. Мне кажется лучше всего подойдут скрытые поля с рендомными значениями.

Автор: getme 1.3.2009, 10:19
редирект это решение, работает без проблем


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)