Запись массива в COOKIE

В «печеньках» можно оказывается хранить массивы! Хотя нет, правильнее будет наверно сказать так: «В куках можно представить данные таким образом, что их можно будет обрабатывать, как массивы».


Область применения: В моем случае, это позволить неавторизованным пользователям, т.е. гостям, добавлять товары в избранное. Cookies — оптимальный вариант. Однако, если посетитель добавит несколько товаров в избранное, то если мы сохраняем в куках ID товара, было бы удобно использовать обычный массив

$favorits = array("1", "2", "9");

Соответственно товары, у которых ID равен значениям 1, 2 или 9 — именно те, которые пользователь выбрал

В куки нельзя напрямую добавить массив. Но можно не очень напрямую

// Отправка cookie
setcookie("favorits[1]", "product_id_1");
setcookie("favorits[2]", "product_id_2");
setcookie("favorits[9]", "product_id_9");

// После перезагрузки страницы, выведем cookie
if (isset($_COOKIE["favorits"])) {
  foreach ($_COOKIE["favorits"] as $id => $val) {
    $id = htmlspecialchars($id); // Именно ключ массива!
  }
}

Думаю, будет логично, если ID будет именно ключем, а не значением. В таком случае значение

$val

не очень то и нужно, хотя туда можно запихнуть другую полезную информацию, например заголовок.

В таком случае удалить конкретный товар из избранного будет тоже предельно легко! Мы просто удаляем cookie, в которых ключ массива в favorits равен ID удаляемого товара.


Итого,

мы получили весьма удобный вариант хранения данных в

$_COOKIE

, с которым удобно работать и которым очень удобно манипулировать. Абсолютно не нужно писать ID в строку через запятые, потом перегонять их в массив, потом обратно в строку, потом искать вхождения в строке, пытаясь убрать ненужные нам данные, и т.д.


admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

4 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

4 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

4 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

4 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

4 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

4 месяца ago