【问题标题】:add Variable Array to Cookie then getting error将变量数组添加到 Cookie 然后出现错误
【发布时间】:2012-02-15 14:18:32
【问题描述】:

输入变量后,

PHP 代码:

$CartItem = array(
        'itemID' => $itemID,
        'ProductName' => $ProductName,
        'Option' => $Option,
        'Quantity' => $Quantity,
        'Price' => $Price,
        'Total' => $Total
    );

setcookie('CartItem', $CartItem, null);

输出错误:

Warning: setcookie() expects parameter 2 to be string, array given in /Users/user/Sites/app/addtocart.php on line 46

【问题讨论】:

  • 你真的不应该为此使用cookies。而是将购物车存储在$_SESSION 中,如果需要长期存储,请将其序列化到数据库中。有关示例,请参阅stackoverflow.com/questions/8128433/…

标签: php arrays shopping-cart setcookie


【解决方案1】:

正如错误提示,cookie 数据必须是字符串格式。更重要的是,您不应该将真实数据存储在 cookie 中,因为用户可以对其进行编辑。

由于您使用的是PHP,因此您可以使用会话...您可以使用session_start(),它将设置一个您不需要管理的cookie,然后您可以在$_SESSION变量服务器中设置数据- 侧面。

请看这里:http://php.net/manual/en/function.session-start.php

请注意 session_start() 必须在每个页面上输出任何内容之前调用。

【讨论】:

    【解决方案2】:

    我们可以在 cokkie 中一次添加一个变量 这样做吧

    $CartItem[] = array(
            'itemID' => $itemID,
            'ProductName' => $ProductName,
            'Option' => $Option,
            'Quantity' => $Quantity,
            'Price' => $Price,
            'Total' => $Total
        );
    
    foreach($CartItem as $key=>$value)
    {
    setcookie($key, $value, null);
    
    }
    

    【讨论】:

    • 啊...cookie不能支持变量数组??
    • 虽然它可以解决最初的问题(或者不是真的,因为它只允许存储一个 CartItem),但更大的问题是使用 cookie 来存储用户的真实数据(如价格和总计)可编辑。
    猜你喜欢
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    相关资源
    最近更新 更多