Проблемы при замене POST на GET запрос
16 сообщений
#16 лет назад
Пишу небольшой сайт. Сделал так, чтобы все запросы POST менялись на GET с передачей массива $_POST через сессию. Я подумал, что в этом есть смысл. Так вот. На локальной машине проблем нет. Когда тестирую на удаленном хосте - возникает проблема. Редирект обрабатывается 60 сек (+- 2 сек.)
Т.е. сервер видит что это ПОСТ. Тогда сохраняет массив и делает редирект на тот же урл. Браузер думает минуту, а потом возвращает нормальную страницу.
Что здесь не так? Есть ли смысл сайту работать таким образом?
3 сообщения
#16 лет назад
Цитата ("df34td"):Сделал так, чтобы все запросы POST менялись на GET с передачей массива $_POST через сессию
Индийский код отдыхает, имхо.
1594 сообщения
#16 лет назад
А вообще, зачем это делать? Ну и передавал бы все через POST и всё... Если хочешь как-то защитить - то через SSL.Ещё кодировать можно.
6 сообщений
#16 лет назад
Смысла в этом нет! И это не браузер думает, а сервер если быть точнее.
626 сообщений
#16 лет назад
Смысл есть - чтоб при нажатии на F5 браузер не спрашивал повторную отсылку данных.Как делать методически:
1. форма отсылает POST-запрос на некий URL (у меня index_post.pl)
2. обработка запроса доходит до компонента, там параметры запроса сохраняются в сессию
3. выдаем браузеру редирект на некий url2 (у меня index.pl)
4. обработка запроса доходит до компонента, там параметры достаются из сессии и все хорошо.
index.pl и index_post.pl абсолютно идентичны, разные имена сделаны как раз для борьбы с повторной отправкой параметров.
Вам стоит проверить как работает скрипт который только выдает редирект и больше ничего.
771 сообщение
#16 лет назад
Цитата ("Demiurh"):Смысл есть - чтоб при нажатии на F5 браузер не спрашивал повторную отсылку данных.
не чересчур вы заморочились? Обрабатываете пост-данные, по окончанию обработки header("location:что_отобразить"

Махинацию c get-ом я так и не понял.
16 сообщений
#16 лет назад
Alexander_vip: Видимо, Вы как раз все поняли. Я вызываю header(), а уже потом обрабатываю POST-данные.Demiurh: Согласен, но я редирект выдаю сразу, если вижу POST
Но суть в другом! На хостере редирект обработывается ровно 60 секунд. Что это за интервал - я не понимаю.
Страница висит, а через минуту обновляется.
771 сообщение
#16 лет назад
А если попробовать финт ушами, вместо header
print("
<html>
<script type='text/javascript'>
document.location.href='url';
</script>
</html>
");
м?
83 сообщения
#16 лет назад
Цитата ("Demiurh"):index.pl и index_post.pl абсолютно идентичны, разные имена сделаны как раз для борьбы с повторной отправкой параметров.
не оптимальный вариант. предлагаю такой: файл один - вначале идет проверка, была ли отправка формы. если да - выполняются необходимые действия, и идет редирект на эту же страницу (в случае успешной обработки формы), отправки формы уже нет, и выполняется остальной код этой страницы.
все просто
