post посылка формы

Olimp

Guest
post посылка формы

Подскажите как избавиться от такого глюка:
Когда посылаешь пост запpос если обновил стpаницу напpимеp или веpнулся на нее
бpаузеp пpосит еще pаз послать данные.
Пpи посылке post фоpмы пользователь должен иметь возможность только один pаз
нажать кнопку и после этого сpазу появляется окно какое-нибудь вpеменное(или
что-нибудь в этом pоде).

Сейчас обpабока пpоисходит пpимеpно по такому алгоpитму

if (isset($_POST("кнопка")){
пpовеpяем пост данные
}
else{
выводим стpаницу(посылаем хеадеpы) и потом pисуем фоpму
}

Смотрел с фака пример ничего так и не понял. Пользователю данные должны быть выведены на этой же странице
 

Фанат

oncle terrible
Команда форума
с какого фака и какой пример ты смотрел?

-~{}~ 10.08.05 07:55:

и при чём здесь форум по яваскрипту?
 

skynet80

rundesigner.com
А чего тут не понятного если есть в переменной окружения сервера данные, то ты их обрабатываешь если нет то выводишь форму для заполнения. В форме акшен должен быть сам на себя только и всего.
 

SnowB

Guest
Ты вот про это?
Внимание: страница устарела Запрошенная страница была создана с помощью переданных в форму сведений. Доступа к этой странице больше нет. Из предосторожности Internet Explorer не повторяет передачу сведений автоматически.

Для повторной передачи сведений и просмотра веб-страницы нажмите кнопку Обновить.
Конкретно от этого избавиться нельзя насколько я знаю...

А чтобы второй раз не отправляли одно и тоже, то можно присвоить уникальный идшник и если такой идшник уже обрабатывался, то не обрабатывать эти данные..
 

Loki-Di

Новичок
Используй перенаправление с помощью header и никаких повторных постов не будет.
 

Olimp

Guest
Всем большое спасибо.
Все дело в том, что не хотелось бы перенаправлять хеадером на другую страницу и там выводить данные.

А как их сохранить, чтоб потом вывести уже результат в теле
else if(isset($_GET['ok']))
{
echo "спасибо, что Вы есть";
}
после перенаправления?

Вот нашел фак http://faq.phpclub.net/location
разобрался идея понятна, но буду дорабатывать
Ну и сама идея:
if(isset($_POST['posted']))
{
// проверка данных
if(данные хорошие)
{
/*
записываем данные
*/
header('location: '.$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"].'?ok'); // любо на другой скрипт
/*
желательно при этом помнить о пользователях, у которых
отключены куки и которые могут потерять идентификатор сессии,
но это отдельный разговор
*/
exit;
}
else
{
echo "ошибка!!!";
}

}
else if(isset($_GET['ok']))
{
echo "спасибо, что Вы есть";
}
else
{
// выбираем данные из бызы
}
?>

<form action = "<?=$_SERVER["PHP_SELF"]?>" method = "post">
<input type = "hidden" name = "posted" value = "1">
// рисуем форму
</form>
 

Фанат

oncle terrible
Команда форума

WMix

герр M:)ller
Партнер клуба
можно в новое окно постить , которое закроется.... но эт вообше бред...
можно сжирать хистори... так делают но тож гон... хотя в моем банке такое!

хидером самое четкое... и не на другую.... на туже можно.... но уже гетом... а в файле провеяй

если ПОСТ хеадер
иначе напечатай " ваши данные отправленны на ..." ;
 

Olimp

Guest
Про
<input type = "hidden" name = "posted" value = "1">
я тоже не особо понял скорее всего счетчик.

Просто не хотелось бы размножать количество страниц на сайте. И для индексации так лучше будет.
В общем все спасибо за ответы. Буду направлять на другую страницу.
 
Сверху