Можно ли отправлять заголовки cookie напрямую с помощью вызовов header ()? - PullRequest
3 голосов
/ 31 марта 2011

Можно ли отправлять заголовки cookie напрямую с помощью вызовов header()?

Я работаю с механизмом http cookie в PHP и хотел бы (хотя бы на начальном этапе) попробовать "сырую" вещь:)

Ответ Брэда Кристи на "php-how-to-stringify-array-and-store-in-cookie" предполагает, что это так, но есть ли какой-то официальный источник по теме (или это хотя бы общеизвестная практика)?

Заранее спасибо за разъяснение темы.

[РЕДАКТИРОВАТЬ: ВАЖНОЕ ЗАМЕЧАНИЕ]

Интересная вещь, которую я обнаружил, заключается в том, что вызов header('Set-Cookie: ...'); эффективно предотвращает отправку файлов cookie, ранее поставленных с setcookie('...');, по крайней мере, на моем компьютере (PHP 5.3.5, Apache 2.2.17, WinXP SP2). Является ли это функцией / ошибкой (?) Или следствием нарушения семантики / правил PHP, я не знаю.

Анализ исходных текстов PHP .c, возможно, даст ответ (для этого следует рассмотреть файлы head.c (header(), setcookie() и т. Д.) И mod_php5.c (модуль Apache)).

Ответы [ 4 ]

4 голосов
/ 31 марта 2011

Учитывая, что куки - это просто заголовки HTTP, вы, конечно, можете отправлять их с помощью функции header().

Но это переизобретает колесо (и выприходится разбираться со всеми возможностями самостоятельно), поскольку PHP предоставляет функцию setcookie().

Тем не менее, если вы хотите узнать, как работают файлы cookie, почему бы и нет?
Это может быть интересно; -)

2 голосов
/ 31 марта 2011

PHP в любом случае не волнует. Установка куки просто означает отправку заголовка. С сайта PHP больше ничего не происходит (если вы не говорите о сессиях, но, видимо, нет). Вы можете послать любой необработанный заголовок, PHP не заботится. Если вы отправите правильный заголовок и клиент вернет cookie при следующем запросе, PHP правильно проанализирует его в массиве $_COOKIE. И это все, что нужно сделать.

1 голос
/ 31 марта 2011

Это определенно нормально. Нет разницы между правильными файлами cookie, отправленными с необработанными заголовками, и файлами cookie, отправленными с помощью set_cookie().

0 голосов
/ 07 апреля 2011

ЭТО НЕ

Пожалуйста, смотрите часть вопроса "изменить".

...