【问题标题】:multiple cookie data using php (shoping cart)使用 php 的多个 cookie 数据(购物车)
【发布时间】:2014-01-24 22:54:54
【问题描述】:

我现在正在制作一个购物车,我已经成功地使用 php 写入和读取了一个 cookie,但我无法添加多个数据,如何在我的购物车中添加超过 1 个商品?

我想我应该给我们一个数组,但是如何将它与 cookie 一起使用呢?我的意思是如何从我的 cookie 文件中读取数组。或者也许有更简单的方法来解决我的问题?

 <?
        setcookie("id", $id);
        setcookie("howmany", $howmany);
        header('Location: http://localhost/shop/index.php?page=shop&id='.$id);
        exit;
    ?>

这样读

<?
    echo('u add id'.$_COOKIE["id"].' as'.$_COOKIE["howmany"].' thank you');
?>

【问题讨论】:

  • 在 cookie 中存储数组没有问题。如果您愿意,您还可以将数组存储为json coded。
  • +1 for json @DainisAbols
  • 如果你不需要从 JS 访问这些数据,最好将其存储在会话中,而不是 cookie 中

标签: php cookies


【解决方案1】:

您不应为此使用 cookie。

将其全部保存在用户会话中,并且仅将会话 ID 分配为 cookie。 如果服务器单独知道用户活动数据并且只在必要时告诉用户就足够了。

其他一切都是不安全的,cookie 有一个令人讨厌的问题,即您不知道它们是否被拒绝,除非您重新加载页面。

也可以在不知道用户帐户/密码的情况下访问 Cookie,如果没有及时过期,您可以查看同一台 PC 的其他用户购买或尝试购买的东西。

我无法想象你想要那样,是吗?

【讨论】:

    【解决方案2】:

    COOKIE 有大小和数量限制,所以你可以试试 SESSION

    参考 What is the maximum size of a web browser's cookie's key?

    Maximum number of cookies allowed

    【讨论】:

      【解决方案3】:

      我认为 session 会是更好的选择,因为它更易于使用且更安全。

      所以如果你想在cookie中存储数组,可以使用json_encode/json_decode php函数。 假设你有一个数组:

      $arr = array(1, 2, 3);
      

      要将其保存在 cookie 中,您必须编写:

      setcookie('some_key', json_encode($arr));
      

      以及修改:

      $arr = json_decode($_COOKIE['some_key']);
      $arr[0] = 4;
      setcookie('some_key', json_encode($arr));
      

      更容易使用会话。您可以在脚本开头的某处编写:

      session_start();
      

      然后简单地说:

      $_SESSION['some_key'] = array(1, 2, 3);
      $_SESSION['some_key'][0] = 4;
      

      但有一点需要注意:session_start 必须在任何输出之前调用,例如:echo 'some text'。 最好将session_start 放在脚本的开头。

      如果您希望这些数据可以通过 javascript 访问,那么 cookie 只是一个不错的选择,仅此而已。

      祝你好运

      更新: 有关 php 会话的更多信息,您可以阅读 here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-29
        • 1970-01-01
        • 1970-01-01
        • 2014-04-22
        • 2020-11-04
        • 2015-06-09
        • 1970-01-01
        • 2018-02-15
        相关资源
        最近更新 更多