Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Метод POST и кнопка "Назад" в IE
Покинул форум
Сообщений всего: 40
Дата рег-ции: Авг. 2008
Помог: 0 раз(а)
Чувствую, что тема не новая, но по поиску ничего не нашел.
Есть страница с формой поиска, данные отправляются методом POST. Есть страница с многостраничными результатами поиска. Когда там переходишь по страницам поиска и хочешь вернуться по кнопке "Назад" - в IE получаешь "Веб-страница просрочена".
Как с этим бороться, помимо переделки метода на GET?
Ch_chov
Отправлено: 15 Апреля, 2010 - 08:39:50
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
Не только IE, но и FF так реагирует. Наверно, это одна из причин того, что поисковики испольуют метод GET.
Кроме этого, использование GET в данном случае позволит давать ссылки на страницы результатов поиска.
Polaris
Отправлено: 15 Апреля, 2010 - 11:50:15
Новичок
Покинул форум
Сообщений всего: 40
Дата рег-ции: Авг. 2008
Помог: 0 раз(а)
То есть, единственное решение в данном случае - метод GET вместо POST?
JustUserR
Отправлено: 15 Апреля, 2010 - 16:23:42
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Polaris пишет:
Есть страница с формой поиска, данные отправляются методом POST. Есть страница с многостраничными результатами поиска. Когда там переходишь по страницам поиска и хочешь вернуться по кнопке "Назад" - в IE получаешь "Веб-страница просрочена
Вообще идея метода POST заключается как раз в том - что вместе с POST-запросом передается некий достаточно большой набор данных (В том числе различные файлы и тд) - на основе которого и генерируется запрашиваемая страница 0 то есть поразумевается что данные отправились один раз и все А метод GET несмотря на наличие в нем query_string предполагает многоразовый запрос - в том время как GET-переменные просто служат для идентификации страницы по этим парамтерам
Однако на практике при желании можно реализовать следующим образом - вы создаете статическую HTML страницу на которой будет размещатьсфя управляющий JS-скрипт - там находится форма которая передается на сервер с помощью Iframe/AJAX то есть без перезагрузки страницы Таким образом пользователя может вводить новые запросы и они будут ему показываться на этой же старнице заместо старых (Можно доработать чтобы сохранлась история запросов) При желании можно обрабатывать нажатия кнопок Назад и Вперед чтобы они функционировали по смыслу вашей системы - но это достаточно сложный способ и лучше сделать как указано выше
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Polaris
Отправлено: 19 Апреля, 2010 - 08:53:37
Новичок
Покинул форум
Сообщений всего: 40
Дата рег-ции: Авг. 2008
Помог: 0 раз(а)
Подумал и нашел более простой вариант. С формы поиска перенаправляешь не прямо на скрипт с выводом результатов, а на какой-либо промежуточный скрипт, где сохраняешь в сессии параметры поиска. А оттуда уже делаешь header('location: результат_поиска.php').
Вроде работает.
JustUserR
Отправлено: 19 Апреля, 2010 - 12:14:26
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Polaris пишет:
Подумал и нашел более простой вариант. С формы поиска перенаправляешь не прямо на скрипт с выводом результатов, а на какой-либо промежуточный скрипт, где сохраняешь в сессии параметры поиска. А оттуда уже делаешь header('location: результат_поиска.php').
Вроде работает.
В принципе вариант неплохой однако имеет две особенности - во-первых пользователю приходится лишний раз перезагружать страницу (С переходом обратно на форму поиска) а так можно было бы указать типа прогресс-бара поиска - а во-вторых таким образом данные частично лежат в сесси а частично передаются в POST-запроса а также можно было бы все передавать через POST-запрос
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.