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

Каждый раз, когда браузер запрашивает страницу на сервере, все данные в файле cookie автоматически отправляются на сервер в рамках запроса.

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

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

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

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

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

Вот пример, в котором функция setcookie() используется для создания файла cookie с именем username и присваивает ему значение value John Carter. Она также указывает, что срок действия cookie истечет через 30 дней (30 days * 24 hours * 60 min * 60 sec).

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

Все аргументы, кроме имени, необязательны. Вы также можете заменить аргумент пустой строкой («»), чтобы пропустить этот аргумент, однако, чтобы пропустить аргумент истечения срока действия (expires), используйте вместо него ноль (0).

Не храните конфиденциальные данные в файлах cookie, поскольку злоумышленник потенциально может ими манипулировать. Для безопасного хранения конфиденциальных данных используйте вместо этого сессии.

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

Доступ к индивидуальному значению cookie можно получить, используя стандартную нотацию массива, например, для отображения файла cookie имени пользователя, установленного в предыдущем примере, вы можете использовать следующий код.

<?php
// Доступ к индивидуальному значению cookie
echo $_COOKIE["username"]; // Выводит: John Carter
?>

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

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

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

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

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

Вы должны передать точно такой же путь, домен и другие аргументы, которые вы использовали при первом создании файла cookie, чтобы гарантированно удалить файл cookie.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.