Установка cookies

Задача
Необходимо установить cookie.

Решение
Это делается с помощью функции setcookie():

setcookie('flavor','chocolate chip');

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

Для управления поведением cookies можно передать в функцию setcookie() дополнительные аргументы. Третий аргумент функции setcookie() – это время истечения срока действия в формате метки времени UNIX. Например, время действия следующего cookie истекает в полдень GMT 3 декабря 2004 года:

setcookie('flavor','chocolate chip',1102075200);

Если третий аргумент функции setcookie() опущен (или пустой), то время действия cookie заканчивается в момент закрытия броузера.

Следует иметь в виду, что многие системы не могут обрабатывать время истечения срока действия, превышающее 2 147 483 647, поскольку это наибольшее значение метки времени UNIX, которую может содержать 32-битное целое число.

Четвертым аргументом функции setcookie() является путь. Cookie посылается обратно серверу только в том случае, если путь к запрашиваемым страницам начинается с указанной в аргументе строки.


Так, следующий cookie будет послан обратно на страницу, путь к которой начинается со строки /products/:

setcookie('flavor','chocolate chip','','/products/');

Страница, которая устанавливает этот cookie, не обязана иметь URL, начинающийся со строки /products/, но следующий cookie будет послан обратно только на страницу, удовлетворяющую этому требованию.

Пятый аргумент функции setcookie() – это домен. Cookie посылается обратно серверу только в том случае, если имя хоста, с которого запрашиваются страницы, заканчивается строкой с именем указанного домена. В следующем фрагменте кода первый cookie посылается обратно всем хостам, принадлежащим домену example.com, но второй cookie
посылается только в запросах к хосту jeannie.example.com:

setcookie('flavor','chocolate chip','','','.example.com');
setcookie('flavor','chocolate chip','','','jeannie.example.com');

Если бы домен первого cookie был только example.com, а не .example.com, то он был бы послан только одному хосту example.com (а не www.example.com или jeannie.example.com).
Последний необязательный аргумент setcookie() – это установленный в 1 флаг, который приказывает посылать cookie только посредством SSL-соединения.


Это может оказаться полезным, если cookie содержит важную информацию, но помните, что на компьютере пользователя информация cookie хранится в открытом виде.

Различные броузеры обрабатывают cookies немного по-разному, особенно в зависимости от того, как строго они подходят к строкам пути и домена и как распределяют приоритеты между cookies с одинаковыми именами. Эти отличия хорошо разъясняются на странице помощи по функции setcookie() оперативного руководства.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Аутентификация, основанная на cookies
Буферизация вывода в броузер
Взаимодействие в рамках Apache
Идентификация различных броузеров
Настройка обработки ошибок

Вернуться в раздел: PHP / 8. Основы Web