PHP поддерживает HTTP cookies. Это механизм хранения небольших объёмов данных браузером на компьютере клиента.
Для записи cookies используются функции setcookie() или setrawcookie().
Cookies являются частью HTTP-заголовка, поэтому setcookie() должна вызываться до любого вывода данных в браузер.
Любые cookies, отправленные серверу браузером клиента, автоматически включаются в суперглобальный массив $_COOKIE.
Параметры браузера клиента управляют режимом работы клиента с cookies. Можно разрешить cookie, удалить или запретить в параметрах браузера. Например, в браузере chrome: chrome://settings/cookies
setcookie(name, value, expire, path, domain, secure, httponly);
Функция setcookie() записывает в cookie переменную с именем "name", значение которой: "value". Эта переменная передаётся клиенту вместе с другими HTTP заголовками. Как и любой другой заголовок, cookie должны передаваться до того, как будут выведены какие-либо другие данные скрипта (это ограничение протокола). Это значит, что в скрипте вызовы этой функции должны располагаться до любого другого вывода, включая вывод HTML тэгов.
После передачи клиенту переменные cookie доступны через глобальный массив $_COOKIE. Эти данные будут доступны при следующей загрузке страницы, пока не закончится срок годности (expire). Значения cookie также доступно через $_REQUEST.
name - единственный необходимый параметр: имя переменной, которая запишется в cookie
value - значение переменной, это значение будет сохранено на клиентском компьютере значение переменной cookie c именем , будет доступно через $_COOKIE['cookiename'].
expire - срок годности cookie, по истечении срока годности cookie автоматически удаляются, если задать 0 или пропустить этот параметр, срок действия cookie истечет с окончанием сессии (при закрытии броузера)
path - путь к директории на сервере, из которой будут доступны cookie, если установлено значение «/», файл cookie будет доступен во всем домене
domain - домен, которому доступны cookie, задание домена делает cookie доступными в нем и во всех его поддоменах
secure - cookie должны передаваться от клиента по защищенному HTTPS соединению
httponly - если задано TRUE, cookie будут доступны только через HTTP протокол, то есть cookie в этом случае не будут доступны скриптовым языкам, вроде JavaScript
Функция setcookie() возвращает значение true или false в зависимости от того, удалось или нет установить cookie. Это можно использовать для того, чтобы проверить, разрешены ли cookie в браузере клиента.
Записать cookie
Прочесть cookie
Удалить cookie