PHP - $_COOKIE: Ваше сладкое знакомство с веб-постоянством

Здравствуйте, будущие маги PHP! Сегодня мы окунемся в аппетитный мир куки. Нет, не те, которые макают в молоко (хотя я не был бы против одного такого сейчас). Мы говорим о веб-куках, fundamental concept в веб-разработке, который вы будете использовать снова и снова в своем пути кодирования.

PHP - $_COOKIE

Что такое кука?

Представьте, что вы посещаете свой любимый онлайн-магазин. Вы добавляете несколько товаров в корзину, но затем ваша кошка решает, что именно сейчас идеальное время погоняться за своим хвостом, и вы отвлекаетесь. Когда вы вернетесь на сайт позже, было бы приятно, если бы ваши товары в корзине сохранились. Вот где на помощь приходят куки!

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

В 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