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

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

<?php
$favorits = array('1','2','9');
?>

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

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

<?php
// отправка 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 в строку через запятые, потом перегонять их в массив, потом обратно в строку, потом искать вхождения в строке, пытаясь убрать ненужные нам данные, и т.д.

 


Комментариев нет

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

*

*