Cookies

Cookies — данные, которые хранятся в браузере посетителя сайта (в виде текста).

Cookies можно использовать, например, чтобы запоминать, какую страницу пользователь уже посетил, и при повторном посещении страницы показывать пользователю «страница уже просмотрена».

Создаются cookies через функцию setcookie().

// создание cookie
setcookie("cookie_name", "Сохранённая информация", time() + 3600);

Все cookies доступны через массив $_COOKIE. Например, cookie, созданный выше, можно вывести через следующий код:

echo $_COOKIE['cookie_name']; // Сохранённая информация

Третий параметр функции setcookie() указывает время хранения cookies в секундах. В примере выше указано время хранения в 1 час (3600 секунд).

Cookies передаются клиенту вместе с HTTP заголовками, поэтому cookies должны быть определены до вывода HTML.

Нельзя создать cookies и тут же их использовать. Вывести cookies можно будет с обновлением страницы.

Через четвёртый параметр можно указывать URL, для которой будет сохраняться cookies. По умолчанию cookies сохраняется для текущего URL.

// Сохранение cookies для всех страниц
setcookie("name", "Сохранённая информация", time() + 3600, '/');

// Сохранение cookies для раздела "catalog/"
setcookie("name", "Сохранённая информация", time() + 3600, '/catalog/');

// Сохранение cookies для указанной страницы
setcookie("name", "Сохранённая информация", time() + 3600, '/about.html');

Cookie сохраняются в браузере в url-закодированном виде, а при выводе декодируются в обычную строку.

setcookie("site", "https://know-online.com/"); // хранится как https%3A%2F%2Fknow-online.com%2F

echo $_COOKIE['site']; // https://know-online.com/

Удаление cookies

Чтобы удалить cookies, надо для текущей cookies задать время хранения в прошедшем времени. Например, код ниже устанавливает cookies на час назад, т.е. удаляет его, т.к. истекло время хранения.

// Пример удаления cookies
setcookie("name", "Сохранённая информация", time() - 3600);

Обновление cookies

Cookies обновляются также, как и создаются, только устанавливается новое значение.

// Создание cookies
setcookie("name", "Сохранённая информация", time() + 3600);

// Обновление cookies
setcookie("name", "Новое значение", time() + 3600);