Александр П.
16 сообщений
#16 лет назад
Пишу небольшой сайт. Сделал так, чтобы все запросы POST менялись на GET с передачей массива $_POST через сессию. Я подумал, что в этом есть смысл.
Так вот. На локальной машине проблем нет. Когда тестирую на удаленном хосте - возникает проблема. Редирект обрабатывается 60 сек (+- 2 сек.)

Т.е. сервер видит что это ПОСТ. Тогда сохраняет массив и делает редирект на тот же урл. Браузер думает минуту, а потом возвращает нормальную страницу.
Что здесь не так? Есть ли смысл сайту работать таким образом?
Никита К.
1594 сообщения
#16 лет назад
Foreach($_POST => $key as $value)
{
$_GET = $value;
}
Дмитрий Г.
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:что_отобразить" - php

Махинацию 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 абсолютно идентичны, разные имена сделаны как раз для борьбы с повторной отправкой параметров.

не оптимальный вариант. предлагаю такой: файл один - вначале идет проверка, была ли отправка формы. если да - выполняются необходимые действия, и идет редирект на эту же страницу (в случае успешной обработки формы), отправки формы уже нет, и выполняется остальной код этой страницы.
все просто