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


Автор: bazzjr 20.5.2010, 17:17
Всем привет.

Имею следующую проблему.

1. есть форма поиска, методом post
2. кнопкой submite отправляем данные поиска скрипту .php 
3. в файле скрипта идет выборка и построение данных
4.  если после построения нажать на кнопку REFRESH (F5), то в браузерах выводиться окно с надписью (Чтобы отобразить эту страницу, Firefox должен отправить информацию, которая повторит любое ранее произведённое действие).

Вопрос: как избежать этой надписи, как сделать так, чтобы при нажатии на REFRESH не выводилось данное окно?


P.S. такая же ситуация возникает и с кнопкой BACK.
P.S.S. почитал на эту тему, но так и не понял как же конкретно исправить.


Автор: djamshud 20.5.2010, 17:40
Сначала нужно подготовить все данные, потом редиректить на страничку с результатами.

Автор: bazzjr 20.5.2010, 17:50
Данные подготавливаются.

т.е. после нажатия кнопки submite, отправляем данные сначала на один скрипт файл, затем редиректим в этом файле на другой скрипт файл? так?

И как редиректить? ведь при редиректе данные post теряются? header("location: ".$some_file.php)

Автор: bars80080 20.5.2010, 18:49
Цитата(bazzjr @  20.5.2010,  17:50 Найти цитируемый пост)
И как редиректить? ведь при редиректе данные post теряются? header("location: ".$some_file.php)

значит сохранить данные на время ридеректа. либо добавить в качестве параметров к редиректу:
Код

header('location: some_file.php?param1=value1&param2=value2');

либо сохранить в сессии, либо в файле и передать каким-нибудь образом имя этого файла

Автор: djamshud 20.5.2010, 19:59
>И как редиректить? ведь при редиректе данные post теряются?

Под "подготовленными даными" предполагается, что все post-ы уже обработаны и сформированная страничка находится в кэще например или что-то типа того.

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