[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кастомные заголовки при редиректе
vagrand
День добрый.

Появилась необходимость сделать редирект пользователя на определенный URL из PHP скрипта, но при этом передать на этот URL еще и список кастомных заголовков.

Пробовал таким способом:


header('Is-Encrypted: YES');
header('Location: dst.php');


Но на стороне dst.php хидера Is-Encrypted нет. Может кто сталкивался с такой задачей?

Повторюсь еще раз что нужно сделать именно редирект, а не cURL запрос.



Спустя 36 минут, 38 секунд (17.03.2011 - 14:49) Trianon написал(а):
что значит "на стороне" ?
В запросе ему быть никак, потому что это поле отклика.
В отклике ему тоже быть никак, потому что опсылать его должен сам dst.php

Спустя 15 минут, 35 секунд (17.03.2011 - 15:05) vagrand написал(а):
Цитата
что значит "на стороне" ?


На стороне значит, что в скрипте dst.php я написал:

var_dump(apache_request_headers());


И не вижу там хидера Is-Encrypted.

Спустя 18 минут, 15 секунд (17.03.2011 - 15:23) Trianon написал(а):
я о чем и сказал
функция header формирует поля заголовка отклика (response headers) а не поля заголовка запроса (request headers).
Поле заголовка отклика Location: дойдет до браузера, и спровоцирует его на выдачу еще одного - совершенно отдельного запроса.
В этом запросе будет заголовок (запроса) со своими полями. Поля Is-encrypted в нем уже не будет.

И это всё - закрывая глаза на то, что имена пользовательских полей в принципе должны начинаться с символов X-

Типичный пример X-Forwarded-for:

Спустя 21 минута, 6 секунд (17.03.2011 - 15:44) vagrand написал(а):
Trianon

Я и не говорю что написал правильно. Я спрашиваю кк мне сделать то что мне нужно?

Спустя 43 минуты, 29 секунд (17.03.2011 - 16:28) Trianon написал(а):
я ж написал - сгенерировать нужное поле в самом dst.php
Браузер сам по себе не станет транслировать поля из запроса в запрос, даже если Вам это до зарезу.

Как можно передать информацию о необходимости генерации дополнтельного поля?
Например, через куку.
header("Location: dst.php");
setcookie("need_to_set_encrypted", 1);
exit();

в dst.php

if(!empty($_COOKIE['need_to_set_encrypted']))
{
header("X-Is-Encrypted: Yes");
setcookie("need_to_set_encrypted", '', time() - 24*3600);
}
// ...


Куку браузер обязан передать серверу.
Ну скажем так, если клиент непротив - обязан.

Спустя 3 часа, 53 минуты, 15 секунд (17.03.2011 - 20:21) vagrand написал(а):
Нет, у меня нету доступа к скрипту dst.php

Спустя 13 минут, 6 секунд (17.03.2011 - 20:34) Trianon написал(а):
Тогда транслируйте его запросы через собственный гейт-скрипт (URL-адрес при этом поменяется, само собой)

Корректировать заголовок отклика чужого ресурса за здорово живешь никто не даст.

Спустя 50 минут, 20 секунд (17.03.2011 - 21:24) kirik написал(а):
vagrand
Можно ещё со стороны клиента сделать ajax-запрос с пересылкой необходимых заголовков.

Спустя 14 часов, 54 минуты, 14 секунд (18.03.2011 - 12:19) vagrand написал(а):
Цитата
Корректировать заголовок отклика чужого ресурса за здорово живешь никто не даст.


Мне не надо корректировать его заголовки отклика, мне надо сделать редирект пользователя на определенный URL с определенными хидерами запроса

Цитата
Можно ещё со стороны клиента сделать ajax-запрос с пересылкой необходимых заголовков.


ajax не подойдет


_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.