форум вебмастероff на AlfaSpace.NET |
Ubuntu и Linux
|реактивный бесплатный хостинг
| Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга
|
правила форума
| Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ ° |
| Форум вебмастеров на AlfaSpace.NET / Создание сайта / Как избежать повторную пересылку данных формы? |
| Автор | Сообщение |
| Jadd Участник 106 |
# Дата: 31 Май 2006 10:23 Страница с выводом новостей и поиском. Если задан поиск - вывод новостей корректируется в соответствии с запросом. Проблема в том, что после одного поискового запроса при обновлении страницы он пересылается опять, как данные из формы, которую содержит обновляемая страница. Короче, после одного поиска вернуться к "полному" набору новостей уже нельзя... Как этого избежать? |
| digs Участник 374 |
# Дата: 31 Май 2006 10:36 Jadd Никак. Ты хотел попасть на страницу с учетом запроса, ты на нее и попал. Если обновляешь, то браузер опять отсылает те же данные. Просто вернуться на страницу назад нельзя? Или я все не правильно понял? |
| Jadd Участник 106 |
# Дата: 31 Май 2006 11:03 ° Поправил: Jadd Так, но не так. Я пишу запрос в поиск, нажимаю "ок"- идет обновление, поле поиска в на странице становится пустым и ниже выдается результат. Все ок. Когда с этого положения я обновляю страницу - визуально поле поиска пусто и запрос должен быть по логике без учета поиска. Но "прошлые" данные из формы хотя и не видны, но есть. И браузер продолжает их использовать предупреждая таким окошком: "Подтверждение Страница, которую вы пытаетесь загрузить, содержит данные формы. Если вы перешлете их снова, любое действие формы будет повторено... " и т.д. Например, в Гугле ничего такого при обновлении страницы с поиском не выскакивает... И еще пример. Я сейчас тоже пишу мессагу в форме. Если бы тут была такая же ситуация, то после F5 выскочило бы окошко с "подтверждением" и после "Ок" на нем эта мессага без повторного мной заполнения отпостилась по второму разу(в данном случае защиту от спама и таймеры не берем в расчет). Это нелогично и неправомерно) Итог: один раз заполнил - один раз использовал данные. После чего они должны пропасть из формы на странице. Как реализовать пока не додумался (флажки какие глобальные?). Простое явное обнуление массива $_POST в конце страницы ничего не дает - данные опять в нем появляются "загадочным" путем. Заранее спасибо P.S. Путано получилось - сходу писал то, что думал. Если неясна ситуация - попытаюсь объяснить более конструктивно. P.P.S. И как вообще работает F5? По ходу, при нажатии заголовки не передаются заново? |
| Андрей Алексеевич 2123 |
# Дата: 31 Май 2006 11:24 » Jadd По ходу, при нажатии заголовки не передаются заново?Если страница загрузилась с POST, то передаются. Вывод - грузи с GET. |
| Андрей Алексеевич 2123 |
# Дата: 31 Май 2006 11:27 » Jadd И еще пример. Я сейчас тоже пишу мессагу в форме. Если бы тут была такая же ситуация, то после F5 выскочило бы окошко с "подтверждением" и после "Ок" на нем эта мессага без повторного мной заполнения отпостилась по второму разу(в данном случае защиту от спама и таймеры не берем в расчет). Тут процесс другой, страница на которую передаются данные из формы не отдаёт страницу с форумом, после добавления сообщения она выдаёт header('location: ***'); по-этому и не выдаётся сообщение о повторной отсылке данных. Поиск - это из другой оперы. |
| Jadd Участник 106 |
# Дата: 31 Май 2006 12:03 Андрей Хмх... ясно. Спасибо. |
| digs Участник 374 |
# Дата: 31 Май 2006 12:08 » Андрей Если страница загрузилась с POST, то передаются.
Вывод - грузи с GET. Глупости. Сервер отдает страницу, которую запросил браузер. Что до Ф5, что после браузер запрашивает посылая одни и те же данные. Если сильно хочется, то можно хранить какой-нибудь идентификатор, который передается например постом, а потом скриптом проверять, если страница с таким идентификатором запрашивается второй раз, то отдавать чтото другое |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:26255, gzipped size:8692 |