我正在使用PHP开发电子商务网站,我希望实现以下功能:如果用户未登录,他可以将产品添加到购物车,并在登录后仍然拥有这些产品。此外,该功能必须以相反的方式工作:用户登录,然后他将产品添加到购物车。
我认为这样做的一个好方法是使用会话ID,但经过一些测试后发现这不是最好的方法。
任何想法?
答案 0 :(得分:4)
为什么使用会话不是最好的方法呢?我会说是。
您可以拥有一个单独的,基于会话的“未登录”购物车结构,这是普通购物车的精确副本。如果用户未登录,则产品将存储在那里。
当用户登录时,您将未登录的购物车内容与用户在其用户特定购物车中可能已有的任何项目合并。
这一点也是处理产品选择可能产生的任何冲突的地方(例如,已登录用户购物车中已选择的产品)。
使用@Codemwnci建议的cookie来存储产品,或购物车ID也是一个好主意,因为它允许用户稍后返回并仍然拥有您可能需要的购物车内容。
同样的合并原则也适用于此处,另外检查cookie中的产品是否真的是有效的(它们可能已经被删除,因为用户做出了选择,或者用户可能已经更改了cookie) 。
答案 1 :(得分:1)
您可以使用Cookie。只需在cookie中存储一个唯一标识符即代表购物篮。无论用户是登录还是退出,Cookie标识符仍然相同,因此数据将被保留。
答案 2 :(得分:0)
session_start();
$_SESSION["cartitems"] = "1,2,3";