Cookie (куки) представляют небольшие наборы данных (не более 4 кБайт), с помощью которых веб-сайт может сохранить на компьютере пользователя любую информацию. С помощью куки можно отслеживать активность пользователя на сайте: залогинен пользователь на сайте или нет, отслеживать историю его визитов и т.д.
Сохранение cookie
Для сохранения куки на компьютере пользователя используется функция setcookie(). Она имеет следующее определение:
1 2 |
|
Функция setcookie()
может принимать следующие параметры:
-
name
: имя cookie, которое будет использоваться для доступа к его значению -
value
: значение или содержимое cookie - любой алфавитно-цифровой текст не более 4 кБайт -
expire
(необязательный параметр): срок действия, после которого cookie уничтожаются. Если данный параметр не установлен или равен 0, то уничтожение cookie происходит после закрытия браузера. -
path
(необязательный параметр): путь к каталогу на сервере, для которого будут доступны cookie. Если задать '/', cookie будут доступны для всего сайта. Если задать, например,'/mydir/'
, cookie будут доступны только из каталога /mydir/' и всех его подкаталогов. По умолчанию значением является текущий каталог, в котором устанавливаются cookie. -
domain
(необязательный параметр): задает домен, для которого будут доступны cookie. Если это домен второго уровня, например, localhost.com, то cookie доступны для всего сайта localhost.com, в том числе и для его поддоменов типа blog.localhost.com.Если задан поддомен blog.localhost.com, то cookie доступны только внутри этого поддомена.
-
secure
(необязательный параметр): указывает на то, что значение cookie должно передаваться по протоколу HTTPS. Если заданоtrue
, cookie от клиента будет передано на сервер, только если установлено защищенное соединение. По умолчанию равноfalse
. -
httponly
(необязательный параметр): если равноtrue
, cookie будут доступны только через http протокол. То есть cookie в этом случае не будут доступны скриптовым языкам, например, JavaScript. По умолчанию параметр равенfalse
Сохраним cookie:
1 2 3 4 |
|
Здесь устанавливаются две куки: "city" и "language". Первая куки уничтожается после закрытия браузера, а вторая - через 3600 секунд, то есть через час
В cookie можно сохранить любую информацию, но не стоит сохранять важные с точки зрения безопасности данные, например, пароли. А если и сохранять какую-то важную информацию, то следует хранить ее в зашифрованном виде.
Получение cookie
Чтобы получить cookie, можно использовать глобальный ассоциативный массив $_COOKIE, например, $_COOKIE["city"]
. Так, получим ранее сохраненные куки:
1 2 3 |
|
Сохранение массивов в cookie
Сохранение в куки массивов имеет некоторые особенности. Например, сохраним следующий массив:
1 2 3 |
|
Теперь получим его и выведем на страницу:
1 2 3 4 5 6 7 |
|
Удаление cookie
Для удаления cookie достаточно в качестве срока действия указать какое-либо время в прошлом:
1 |
|