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 |
|