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 вовсе.