HTML, Excel, Word, SEOОсновы PHP ⇒ Cookies

Cookies


Автор: Артемьев Сергей Игоревич
ICQ: 438856621
email: _spin_@bk.ru

Cookies (в простонародье - "кукисы") переводится как "печенье". История появления этого термина теряется у истоков ОС Unix. Сookies представляет собой специальный механизм, посредством которого сервер может разместить какие-либо данные на клиенте. При следующем обращении к серверу браузер автоматически передаст ему соответствующие cookies. Этот механизм используется для "запоминания" пользователей на сайтах, для хранения текущего состояния сайта для конкретного пользователя и некоторых других задач. Cookies могуть использоваться не только серверными, но и клиентскими скриптами (например, написанными на JavaScript).


Физически cookie представляет собой обычный текстовый файл, содержащий данные в структурированном виде. Эти файлы обычно располагаются в каталоге браузера или каталогах для хранения временных файлов Интернет. Но копаться вручную не придётся. В кадом браузере есть средство просмотра и управления cookies.


В PHP создать и отправить cookie позволяют функции setcookie() и setrawcookie(). Обе функции идентичны по своему назначению, но параметры функции setcookie() предварительно автоматически кодируются в URL-формат.

Пользоваться этими функциями очень просто:

<?php

    setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);

?>

Функция setcookie() должна быть вызвана до того, как первые данные были отправлены в браузер (например, до первой команды echo или print). В противном случае cookie установлен не будет, а сервер выдаст предупреждение или ошибку. Рассмотрим подробнее каждый из параметров:

name Имя cookie может быть любым, но длинных имён лучше всё-таки избегать
value В качестве значения выступают любые данные в текстовой форме, которые надо сохранить на стороне клиента.
expire Параметр expire определяет дату и время, по истечении которых cookie будет считаться устаревшим и не будет отсылаться серверу. Параметр представляет собой Unix-timestamp, т.е. количнство секунд прошедшее с дня рождения Unix (1 января 1970 года).
path Путь на сервере, для которого будет доступен данный cookie. Если установить значение '/', то cookie будет доступен в любой точке сервера и в любом скрипте.
domain Имя домена, для которого устанавливается cookie. Например, если cookie должен быть доступен только для поддоментов домена mysite.ru, то необходимо указать '.mysite.ru'. Если органичивать доступ по имени домена нет нужды - оставьте пустую строку.
secure Флаг определяет, должен ли cookie передаваться только по безопасному подключению (https). По-умолчанию - false.
httponly Флаг определяет, будет ли cookie доступен как-либо, кроме протокола HTTP (например, из JavaScript).По-умолчанию флаг имеет значение false и доступно только в версии PHP 5.2 и выше.

Например, сохранить строки на клиенте можно так:

<?php

    setcookie($name, $value, $expire, 
		$path, $domain, $secure, $httponly);

?>

Следует помнить, что общий объём одного cookie не может превышать 64 Кб. Кроме того, многие браузеры уменьшают этот лимит до нескольких килобайт или отключают приём cookies вовсе.