English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP базовый учебник

PHP продвинутый учебник

PHP & MySQL

PHP справочник

PHP Cookie

В этом руководстве вы узнаете, как использовать куки PHP для хранения небольшого количества информации в браузере пользователя.

Что такое Cookie

Кука - это малый текстовый файл, который позволяет хранить небольшое количество данных на компьютере пользователя (примерно 4 КБ). Обычно они используются для отслеживания информации, такой как имя пользователя, чтобы сайт мог retrieve эту информацию при следующем посещении пользователя, чтобы отображать персонализированные страницы.

Совет:При каждом запросе страницы серверу браузером все данные в куки автоматически отправляются в запросе к серверу.

Установка куки

Функция setcookie() используется для установки куки в PHP. Убедитесь, что функция setcookie() вызывается до любого вывода скрипта, в противном случае кука не будет установлена. Основная синтаксическая структура функции можно представить следующим образом:

setcookie(name, value, expire, path, domain, secure);

Параметры функции setcookie() имеют следующее значение:

ПараметрыОписание
nameИмя куки.
valueЗначение куки. Поскольку это значение хранится на компьютере пользователя, не храните чувствительную информацию.
expiresДата истечения срока действия в формате UNIX-timestamp. После этой даты кука будет недоступна. Значением по умолчанию является 0.
pathУказать путь, в котором cookie будет доступна на сервере. Если установлен на /, кука будет доступна на всего домене.
domainУказать домен, доступный для куки, например: ru.oldtoolbag.com.
secureЭто поле (если оно существует) означает, что кука будет отправляться только при наличии безопасного HTTPS-соединения.

Совет:Если срок действия куки установлен в 0 или опущен, кука будет аннулирована в конце сеанса, то есть при закрытии браузера.

Ниже приведен пример создания куки с помощью функции setcookie() с именем userName и значением John Carter. Также указан срок действия куки - 30 дней (30 дней * 24 часа * 60 минут * 60 секунд).       

<?php
//Установка Cookie
setcookie("username", "John Carter", time()+30*24*60*60);
?>

Внимание:Все параметры, кроме имени, являются опциональными. Вы также можете заменить параметры пустой строкой ("") для пропуска параметра, но для пропуска параметра expire используйте ноль, так как он является целым числом.

Предупреждение:Не храните чувствительные данные в Cookie, так как злонамеренные пользователи могут манипулировать чувствительными данными. Для безопасного хранения чувствительных данных используйтеСессия.

Доступ к значению Cookie

PHP-суперглобальный переменная $_COOKIE используется для получения значений cookie. Обычно это ассоциативный массив, который содержит список всех значений cookie, отправленных браузером в текущем запросе, с именем cookie в качестве ключа. Вы можете использовать стандартные символы массива для доступа к отдельному значению cookie, например, чтобы показать имя cookie, установленное в предыдущем примере, вы можете использовать следующий код.

<?php
//Доступ к отдельному значению Cookie
echo $_COOKIE["username"];
?>

PHP-код в примере выше генерирует следующий вывод.

John Carter

Прежде чем обращаться к значению cookie, лучше всего проверить, был ли cookie установлен. Для этого вы можете использовать функцию PHP isset(), как показано ниже:

<?php
//Проверка, был ли установлен cookie
if (isset($_COOKIE["username"])) {
    echo "Hi " . $_COOKIE["username"];
} else {
    echo "Welcome Guest!";
}
?>

Вы можете использовать функцию print_r($_cookie) для просмотра структуры этого ассоциативного массива $_cookie, как вы обрабатываете другие массивы.

Удаление Cookie

Вы можете удалить cookie, вызывая одну и ту же функцию setcookie() с именем cookie и любым значением (например, пустой строкой), но вам нужно установить дату истечения срока действия на дату, предшествующую текущей, как показано в следующем примере:

<?php
//Удаление cookie
setcookie("username", "", time()-3600);
?>

Совет:Вам следует передать имена, путь, домен и другие параметры, полностью идентичные тем, которые использовались при первом создании Cookie, чтобы удалить правильный Cookie.