Cookie возвращает предыдущее значение при вызове - PullRequest
0 голосов
/ 09 февраля 2019

Я редактирую массив (в кодировке json) и пытаюсь вставить его в файл cookie, поэтому при попытке показать значение этого файла cookie я получаю предыдущее значение, а не текущее.

In to json
[["d33d6eb947","XS","5"],["78b33f6c64","XS","1"] 


Set cookies 
[["d33d6eb947","XS","5"]] 

Как видите, массив и cookie разные, но я установил cookie с тем же массивом.

Вот мой код:

    <?php
    function addItem($itemUrl, $itemSize, $itemCount)
    {
        if(isset($_COOKIE["cart"])) 
        {
            $cartItems = json_decode($_COOKIE["cart"]);
        }
        else 
        {
            $cartItems = array();
        }
        $itemsArray = array($itemUrl, $itemSize, $itemCount);
        array_push($cartItems, $itemsArray);
        $cartItems = json_encode($cartItems);
        setcookie("cart", $cartItems, time()+60*60*24);
    }

?>

И когда я использую (например) print_r ($ cartItems);я получаю массив с двумя (например) значениями, но когда я использую (после setcookie) print_r ($ _ COOKIE ["cart"]);я получаю массив только с одним значением.Когда я снова использую эту функцию и перезагружаю страницу, я получаю массив с тремя значениями и cookie с двумя значениями.Что мне делать?

1 Ответ

0 голосов
/ 09 февраля 2019

Попробуйте json_decode($_COOKIE["cart"], true) преобразовать в массив (вместо StdObject).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...