Php 我应该如何存储购物车项目?

Php 我应该如何存储购物车项目?,php,shopping-cart,Php,Shopping Cart,我正在用PHP编写一个简单的购物车,但我不太确定应该如何存储用户选择购买的物品。我应该用饼干吗?当然,如果我真的使用了cookies,那么我会存储在cookie中的所有内容都是SKU和数量。我不会将价格存储在cookies中,因为用户可能会更改它们 谢谢你的建议 我建议将购物车项目存储在用户会话中($\u会话变量)。如果需要它们在会话间持久化,请将它们放在数据库表中 在会话变量中,它们不会被篡改(它们在服务器端),并且您不必担心信息泄露(cookie或GET参数中的所有内容都是会话ID)。我建议

我正在用PHP编写一个简单的购物车,但我不太确定应该如何存储用户选择购买的物品。我应该用饼干吗?当然,如果我真的使用了cookies,那么我会存储在cookie中的所有内容都是SKU和数量。我不会将价格存储在cookies中,因为用户可能会更改它们


谢谢你的建议

我建议将购物车项目存储在用户会话中(
$\u会话
变量)。如果需要它们在会话间持久化,请将它们放在数据库表中


在会话变量中,它们不会被篡改(它们在服务器端),并且您不必担心信息泄露(cookie或
GET
参数中的所有内容都是会话ID)。

我建议将购物车项目存储在用户的会话中(
$\u session
变量)。如果需要它们在会话间持久化,请将它们放在数据库表中


在会话变量中,它们不会被篡改(它们在服务器端),并且您不必担心信息泄露(cookie或
GET
参数中的所有内容都是会话ID)。

您可以使用$\u session存储项目ID和数量。在用户提交/确认订单时的签出页面上,您可以根据商品Id从DB获取商品值,并计算其实际价格。

您可以使用$\u会话存储商品Id和数量。在用户提交/确认订单时的“签出”页面上,您可以根据商品Id从DB获取商品值,并计算该商品的实际价格。

如果使用数据库,请将其存储在数据库中。 如果您有客户购物,请将其存储在临时购物车中,您可以将该客户链接到会话变量


查找$\u会话。

如果使用数据库,请将它们存储在数据库中。 如果您有客户购物,请将其存储在临时购物车中,您可以将该客户链接到会话变量


查找$\u会话。

查看此处的答案,了解如何将它们存储在
$\u会话
@Michael中的建议-为了让未登录的访问者仍然可以使用购物车,我需要使用cookie将客人链接到他们的购物车,对吗?因为访问者离开网站后会话变量不会被删除吗?如果将购物车存储在数据库中,那么最好使用一个三列表,如user\u id、item\u id和quantity,在表中为访问者购物车中的每个项目设置一行,或者使用逗号分隔的列表将所有项目和数量放在一列中,或者将其序列化?非常感谢。要链接已离开的用户,您需要序列化购物车并将其存储在数据库中,以及用户cookie中标识它们的一些值。或者创建永不过期的会话。使用数据库存储单个购物车值而不是序列化字符串需要做更多的工作,但是如果要这样做,您完全不必为
$\u SESSION
操心,只需使用数据库即可。Xeoncross在此处给出了完美的答案:请参阅此处的答案,了解如何将它们存储在
$\u SESSION
@Michael-以使未登录的访问者可以继续使用购物车,我需要用饼干把客人和他们的购物车联系起来,对吗?因为访问者离开网站后会话变量不会被删除吗?如果将购物车存储在数据库中,那么最好使用一个三列表,如user\u id、item\u id和quantity,在表中为访问者购物车中的每个项目设置一行,或者使用逗号分隔的列表将所有项目和数量放在一列中,或者将其序列化?非常感谢。要链接已离开的用户,您需要序列化购物车并将其存储在数据库中,以及用户cookie中标识它们的一些值。或者创建永不过期的会话。使用数据库存储单个购物车值而不是序列化字符串需要做更多的工作,但是如果要这样做,您完全不必为
$\u SESSION
操心,只需使用数据库即可。Xeoncross在这里给出了一个完美的答案:您建议如何将购物车中的物品和数量存储在数据库中?显然,这些参数无法在手之前确定,因此我无法为购物车中的每个项目创建列。我是否应该序列化数据并将其存储在列中,然后创建另一个具有会话id的列?@user1197328如果将它们链接到会话id,则会话过期时它们就消失了。您只需使用三列即可存储购物车项目和数量—
user\u id
item\u id
quantity
user\u id
告诉你你在看谁的购物车,表中的每一行都是他们购物车中的一种商品。我明白了。因此,为了让购物车对访客保持可用性,我需要使用cookie将访客链接到他们的购物车?您建议对表使用三列;这是否意味着对于访客购物车中的每一项,我都会在表中有一行?这比使用逗号分隔的列表或序列化列表将所有项目和数量放在一列中更有效吗?谢谢你的帮助@user1197328不,我是说,对于不再保留会话(即丢弃cookie)的用户来说,购物车仍然可用,您需要将会话存储在与其用户ID相关联的数据库中(仅限注册用户)。如果他们清理了他们的饼干,却没有账户,你就不会有购物车给他们。是的,每个条目存储一行比将多个项目放入一列要好得多。查看有关普通表单的信息。您建议如何将购物车中的项目和数量存储在数据库中?显然,这些参数不能在