Php购物车

Php购物车,php,Php,当我们编写购物车时,我们应该使用会话id在数据库中保存购物车信息,还是只保存会话变量?为什么?将其存储在数据库中。这并不难,它会给你最好的结果。此外,它还允许您跟踪人们放入购物篮但不购买的物品。如果用户无法保存其购物车,会话ID也可以,但请记住,如果用户启动浏览器,会话ID可能会更改 如果您希望用户能够存储和检索购物车,则不能依赖会话ID。在这种情况下,您需要一个用户帐户,然后将购物车绑定到用户ID [编辑] 首先,是的,我认为你应该把购物车储存在数据库里。 只要客户没有用户帐户,识别他/她的

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

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

如果用户无法保存其购物车,会话ID也可以,但请记住,如果用户启动浏览器,会话ID可能会更改

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


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

但最终,取决于您希望购物车的可靠性,您不能信任会话ID,因为如果客户重新启动浏览器,会话ID可能会改变。编写cookie也不可靠,因为客户可能已禁用cookie。会话变量当然在会话ID上挂起


如果您不希望购物车100%可靠,您确实需要让客户登录,这样您就可以使用用户ID而不是会话ID。

实际上,这取决于您想如何使用它

如果您希望登录用户可以在2天后(或任何情况下)获得他的购物车,您应该将其放入db中。但您不能保存无登录用户购物车(或者您保存它只是为了跟踪项目)。因此,您必须每次检查用户是否已登录

这样做的好处是,如果用户使用其他浏览器或计算机,他仍然可以使用is购物车


对于数据库,它不能更改任何内容,因为通常情况下,您会有一个历史记录(如果用户购买产品),因此您只有一个布尔值字段历史记录,并且有一个每月清理历史记录的cron(如果需要).

就个人而言,在用户会话中存储购物车没有实际问题,但很明显,一旦关闭浏览器,用户将丢失购物车的内容。所以,这实际上取决于你是否相信你的客户会从拥有一个持久的购物车中受益

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

那么简单的答案是。。。。将其添加到数据库:)