如何使用cookie存储购物车内容?

时间:2016-10-04 19:14:22

标签: php html css

所以我通过php include方法将这个小小的购物车包含在我网站的每个页面中。

购物车的结构如下所示:

<div class="shopping_cart">
<h4 class="sc_title">Shopping cart</h4>
<form action="../scripts/sc_order.php" method="post">
    <div class="sc_content">
        <div class="product">Product 1</div>
        <div class="product">Product 3</div>
        <div class="product">Product 5</div>
    </div>
    <input type="submit" value="Submit order" />
    <div class="sc_button">Clear cart</div>
</form>

但是当我从一个页面转到另一个页面时,从一个页面添加的产品在进入新页面时会从购物车中消失。

如何使用Cookie记住购物车内容?

3 个答案:

答案 0 :(得分:3)

将$ _POST / $ _ GET数据添加到购物车数组中。

$cart = [];

如果您移动到新页面,则序列化购物车数组并添加到setcookie()函数。这样做,您可以在一个cookie下的购物车中放置多个商品。

setcookie('cart', 'serialize($cart)', time() + 60*100000, '/'); 

然后,您可以使用Cookie上的unserialize()来访问购物车数组。

$newarray = unserialize($_COOKIE['cart']);

您可以在购买完成后使Cookie过期。

setcookie('cart', 'serialize($cart)', time() - 60*100000, '/');

正如@Marc B所说,如果您只希望用户在浏览器会话期间保存购物车,则可能值得查看会话,但这取决于您。只需确保您不保存任何密码或安全信息,因为它们很容易被客户端访问。

我还建议查看此处未解释的其他参数。

http://php.net/manual/en/features.cookies.php

答案 1 :(得分:0)

阅读$ _SESSION超全球:http://php.net/manual/en/reserved.variables.session.php

是个好主意

您还可以尝试HTML5 localstorage:https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage

答案 2 :(得分:0)

在结帐过程之前,您没有用户ID。因此,您需要使用会话或会话和Cookie的组合来处理此问题。 一旦用户登陆您的网页,您就会有一个会话值存储。在Cookies中写入会话值/ ID。现在你的Key是Session,把Cookies写成数组,就像这样: SID,Cart_id,last_update,Item_added 等。 因此,您可以从任何页面继续更新用户购物车。 Checkout完成后,您可能会要求用户登录或注册。所以在这个阶段你有用户名。在表格中插入以Cookies编写的数组。这是一个简单的管理流程。此过程还简化了您的库存,库存管理和报告。