English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве вы узнаете, как использовать куки PHP для хранения небольшого количества информации в браузере пользователя.
Кука - это малый текстовый файл, который позволяет хранить небольшое количество данных на компьютере пользователя (примерно 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, так как злонамеренные пользователи могут манипулировать чувствительными данными. Для безопасного хранения чувствительных данных используйтеСессия.
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, вызывая одну и ту же функцию setcookie() с именем cookie и любым значением (например, пустой строкой), но вам нужно установить дату истечения срока действия на дату, предшествующую текущей, как показано в следующем примере:
<?php //Удаление cookie setcookie("username", "", time()-3600); ?>
Совет:Вам следует передать имена, путь, домен и другие параметры, полностью идентичные тем, которые использовались при первом создании Cookie, чтобы удалить правильный Cookie.