Php购物车

时间:2011-01-14 04:54:22

标签: php

当我们编写购物车时,我们是否应该使用会话ID在数据库中保存购物车信息,还是应该只保存会话变量?为什么呢?

4 个答案:

答案 0 :(得分:1)

如果用户无法保存他的购物车,会话ID就可以了,只要记住,如果他通过浏览器启动它就会改变。

如果您希望用户能够存储和检索购物车,则不能依赖会话ID。在这种情况下,您需要一个用户帐户,然后将购物车绑定到用户ID。


[编辑]
首先,是的,我认为你应该将购物车存放在数据库中。 只要客户没有用户帐户,识别他/她的唯一方法是通过会话ID或者如果您在客户端上写一个cookie来识别他/她。

但最终,根据您想要的可靠购物车的可靠性,您无法信任会话ID,因为如果客户重新启动浏览器,它可能会更改。编写cookie不可靠,因为客户可能已禁用c​​ookie。会话变量当然在会话ID上待决。

如果您不是100%可靠的购物车,您需要让客户登录,以便您可以使用UserID而不是会话ID。

答案 1 :(得分:1)

实际上,这取决于你想用它做什么。

如果你想要一个登录用户可以在2天之后(或其他)获得他的购物车,你应该把它放在数据库中。但是您无法保存无登录用户购物车(或者只将其保存到跟踪项目)。因此,您必须每次检查用户是否记录。

优点是如果用户使用其他浏览器或计算机,他仍然会有购物车。

对于数据库,它不能改变任何东西,通常你会有一个历史记录(如果用户购买产品)所以你只有一个布尔值的字段历史记录,并且每个月都有一个清理历史记录的cron(如果你需要它。)

答案 2 :(得分:1)

就个人而言,在用户会话中存储购物车没有任何实际问题,但显然用户将在浏览器关闭后丢失其购物车的内容。所以,这取决于您是否认为您的客户将从拥有或不持久的购物车中受益。

将购物车存储在数据库中没有问题,我建议您这样做,因为您可以看到人们添加到购物车然后不购买的项目,这可能表明某些定价问题

所以简短的回答....将它添加到数据库中:)

答案 3 :(得分:0)

将其存储在数据库中。这并不难,它会给你最好的结果。此外,它还允许您跟踪人们放入篮子但不购买的物品。