所以我通过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记住购物车内容?
答案 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所说,如果您只希望用户在浏览器会话期间保存购物车,则可能值得查看会话,但这取决于您。只需确保您不保存任何密码或安全信息,因为它们很容易被客户端访问。
我还建议查看此处未解释的其他参数。
答案 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编写的数组。这是一个简单的管理流程。此过程还简化了您的库存,库存管理和报告。