PHP - $_COOKIE: Ваше сладкое знакомство с веб-постоянством
Здравствуйте, будущие маги PHP! Сегодня мы окунемся в аппетитный мир куки. Нет, не те, которые макают в молоко (хотя я не был бы против одного такого сейчас). Мы говорим о веб-куках, fundamental concept в веб-разработке, который вы будете использовать снова и снова в своем пути кодирования.
Что такое кука?
Представьте, что вы посещаете свой любимый онлайн-магазин. Вы добавляете несколько товаров в корзину, но затем ваша кошка решает, что именно сейчас идеальное время погоняться за своим хвостом, и вы отвлекаетесь. Когда вы вернетесь на сайт позже, было бы приятно, если бы ваши товары в корзине сохранились. Вот где на помощь приходят куки!
Кука - это небольшой фрагмент данных, который веб-сайт хранит на компьютере пользователя. Это как крошечная записка, которую веб-сайт оставляет, чтобы запомнить информацию о вас или ваших предпочтениях. Куки помогают сделать веб-серфинг более персонализированным и удобным.
В PHP мы используем суперглобальный массив $_COOKIE
для работы с куки. Этот массив содержит все значения куки, отправленные браузером для текущей страницы.
Функция setcookie()
Прежде чем мы начнем печь наши цифровые куки, давайте посмотрим на главный инструмент, который будем использовать: функцию setcookie()
. Эта функция PHP позволяет нам создавать или изменять кука.
Вот базовая синтаксис:
setcookie(name, value, expire, path, domain, secure, httponly);
Давайте разберем эти параметры:
Параметр | Описание | Обязателен? |
---|---|---|
name | Имя куки | Да |
value | Значение куки | Нет |
expire | Время истечения куки (вUnix-времени) | Нет |
path | Путь на сервере, где будет доступна кука | Нет |
domain | Домен, в котором доступна кука | Нет |
secure | Указывает, следует ли передавать кука только через защищенное HTTPS-соединение | Нет |
httponly | Если установлено в TRUE, кука будет доступна только через HTTP-протокол | Нет |
Не волнуйтесь, если это кажется подавляющим. Мы рассмотрим каждый из них более подробно по мере продвижения.
Как устанавливать куки
Теперь давайте запачкаем руки и установим несколько куки! Запомните, установка куки - это как оставлять записку на потом. Вот простой пример:
<?php
setcookie("user_name", "John Doe", time() + (86400 * 30), "/");
?>
В этом примере:
- Мы устанавливаем кука с именем "user_name"
- Его значение - "John Doe"
- Он истечет через 30 дней (86400 секунд * 30)
- Он будет доступен на всему веб-сайту ("/")
After setting the cookie, you can access it using the $_COOKIE
superglobal array:
<?php
if(isset($_COOKIE['user_name'])) {
echo "Welcome back, " . $_COOKIE['user_name'] . "!";
} else {
echo "Welcome, new user!";
}
?>
Этот код проверяет, существует ли кука 'user_name'. Если да, он приветствует пользователя по имени. Если нет, он предполагает, что это новый пользователь.
Как удалять куки
Иногда нужно cleared out the cookie jar. To remove a cookie, you can set its expiration time to a time in the past:
<?php
setcookie("user_name", "", time() - 3600);
?>
This sets the "user_name" cookie to expire an hour ago, effectively deleting it.
Установка куки с использованиемnotations
Что, если вы хотите хранить более сложные данные в куки? PHP позволяет использовать нотацию массива при установке куки. Это особенно полезно, когда вы хотите объединить связанные данные.
Вот пример:
<?php
setcookie("user[name]", "John Doe", time() + (86400 * 30), "/");
setcookie("user[email]", "[email protected]", time() + (86400 * 30), "/");
setcookie("user[preferences][theme]", "dark", time() + (86400 * 30), "/");
?>
В этом случае мы устанавливаем несколько куки под именем "user". Чтобы получить эти значения позже:
<?php
if(isset($_COOKIE['user'])) {
echo "Name: " . $_COOKIE['user']['name'] . "<br>";
echo "Email: " . $_COOKIE['user']['email'] . "<br>";
echo "Preferred Theme: " . $_COOKIE['user']['preferences']['theme'];
}
?>
Этот подход позволяет вам организовать свои данные куки более структурированным образом.
Запомните, работа с куки - это как оставлять записки для себя (или для посетителей вашего веб-сайта). Они невероятно полезны для поддержания состояния между загрузками страниц, запоминания предпочтений пользователей или реализации функций, таких как "Remember Me" в формах входа.
По мере продолжения вашего пути в PHP вы найдете множество других применений для куки. Они являются fundamental tool в веб-разработке, и овладение ими зробит вас более эффективным разработчиком.
Так что前进 и пеките вкусные куки! (И может быть, возьмите настоящий куки, пока вы кодируете - это голодная работа!)
Credits: Image by storyset