Привет всем! Сегодня — небольшой пост, посвященный теме: 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. Спасибо!