Cookie调用时返回先前的值

时间:2019-02-09 13:45:57

标签: php cookies

我编辑数组(使用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 :(得分:0)

尝试json_decode($_COOKIE["cart"], true)转换为数组(而不是StdObject)。