Как уберечься от повторного поста?

ScaR

Guest
Как уберечься от повторного поста?

Ну почему меня постоянно "вштыривает" на мелочах? :(
Тема следующая.
Пишу свой форум камней много, но все обходятся, а вот проблема встала такая: при заведении нового поста, данные формы отсылаются (себе же :) ) методом POST (ну еще бы). Принимаются, обрабатываются, заносятся в БД - все в порядке. Тут самое интересное. Если нажать на кнопочку "Обновить", то принятые данные еще раз отправятся. Соответственно, еще разок примутся, обработаются, запишутся. Раньше (разные голосования, доски и пр.) вставлял кусочек скрипта, который переводил браузер на заданную страницу а-ля window.navigate . При этом брайзер подло щелкал 2 раза, на этом проблемы заканчивались. А теперь хочу по-другому. Можно ли как-то это обойти?
 

Курсий

Guest
http://faq.phpclub.ru/practice.problems.html#practice.problems.location
 

ScaR

Guest
А самое интересное, что у меня так не получается, говорит, что сервер не найден... лана, попробую поразбираться.
Спасибо :)
 

ChesterOne

Guest
После отправки данных POST-ом, если данные уже не нужны лучше странице делать редирект на саму себя:
PHP:
header("Location: " . $GLOBALS['_SERVER']["REQUEST_URI"]);
Правда, если содержимое страницы изменилось, Опера часто выводит закешированную страницу. Чтобы избежать этого можно добавлять в конце адреса случайный параметр.
 

Tor

Новичок
и неплохо бы ко всему добавить уникальный индекс в базейке
 

SiMM

Новичок
> После отправки данных POST-ом, если данные уже не нужны лучше странице делать редирект на саму себя:
> header("Location: " . $GLOBALS['_SERVER']["HTTP_REFERER"]);
Для этого уместнее использовать $_SERVER['REQUEST_URI']
PS: а зачем "масло маслянное"? Массив $_SERVER и так вполне суперглобален. Это так, замечание к стилю.
 

ScaR

Guest
Лана, всем спасибо. :) Правда мне пришлось в начале, перед SERVER'ом добавить http:// - иначе не хотел ослик ходить, куда надо :) но это уже мелочи. И че меня раньше не угораздило зайти в Фак или сюда запостить? :)
 
Сверху