работа с cookies

PHP — работа с cookies

Привет всем! Сегодня — небольшой пост, посвященный теме: PHP — работа с cookies.

Уверен, вы знаете — что такое эти самые cookies. На всякий случай — это небольшой код, который используется для:

  • аутентификации пользователя
  • хранения персональных предпочтений и настроек пользователя
  • отслеживания состояния сеанса доступа пользователя
  • сведения статистики о пользователях

Формируются куки на сервере, а хранятся — на компьютере пользователя.
Создавать эти самые куки (cookies) в PHP можно следующим образом:

setcookie(cookie_name, value_cookie, time() + 3600);

где:
— cookie_name — имя куки
— value_cookie — значение куки
— time() — время жизни куки в секундах, после истечения которого она автоматически удалится

НО! Наличие срока жизни куки не говорит о том, что ее нельзя удалить. Удаляется она просто:

setcookie(cookie_name, value_cookie, time() - 3600);

т.е. код для удаления совершенно схож с кодом для создания cookies, за одной разницей — мы ставим не плюс, а минус во времени жизни куки. Как видите — все просто!
Доля примера разберем код на практике. Я тут создал две страницы: https://lavrynenko.com/php_cookie/index_cookie.php — (отвечает за значение куки с именем «cookie_name» (да, я оригинален 🙂 ) и отображение этой самой куки) и https://lavrynenko.com/php_cookie/add_cookie.php — которая, собственно, и создает эту самую куку.

Исходный код страниц — ниже:
index_cookie.php

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Куки-текст</title>
</head>
<body>
<form action="add_cookie.php" method="post">
<input type="text" name="value_cookie" placeholder="Введите значение куки" /><br />
<input type="submit" name="add_cookie" value="Добавить куку">
</form>
<?php
if (isset($_COOKIE['cookie_name'])) {
echo $_COOKIE['cookie_name'];
} else {
echo "Кука не установлена";
}
?>
</body>
</html>

Разбираем код подробнее:

<form action="add_cookie.php" method="post">
  • создаем форму, которая будет обрабатыватся кодом, расположенным в файле с именем add_cookie.php (я рассказывал об этом подробнее здесь.)
 <input type="text" name="value_cookie" placeholder="Введите значение куки" /><br />
<input type="submit" name="add_cookie" value="Добавить куку">

У нас имеется поле, в которое мы вводим желаемое значение куки, и кнопка, по клику на которую мы и попадаем в файл add_cookie.php — который и сделает всю магию

<?php
if (isset($_COOKIE['cookie_name'])) {
echo $_COOKIE['cookie_name'];
} else {
echo "Кука не установлена";
}
?>

Этот код отвечает за отображение сохраненной на компьютере cookie — в случае, если у нас нет cookies с нужным именем — выводим сообщение о том, что кука не установлена. В противном случае — выводим значение куки.

С первым файлом разобрались. Теперь смотрим код файла, который отвечает за создание cookie:

<?php
$value_cookie = $_POST['value_cookie'];
setcookie("cookie_name", $value_cookie, time() + 3600, '/');
header("Location: index_cookie.php");
exit();
?>
  • тут вообще все просто:
    в первой строке получаем значение куки, которое мы задали на первой странице
    вторая строка отвечает за создание куки: имя куки: «cookie_name», ее значение — переменная, которую мы создали в первой строке, время жизни куки — 3600 секунд.
    третья строка — переадресация на нашу первую страницу (нам же важно увидеть результат отработки файла).

Надеюсь, вам стало понятнее, как организована работа с cookies в PHP. Как всегда — в случае возникновения вопросов пишите на почту или в Telegram. Спасибо!