php 中的购物车,带有会话和数据库

shopping cart in php with session & database

我在 PHP 中使用会话和数据库开发了一个购物车。

如果用户未登录(访客),购物车商品将存储在 $_SESSION["cart"] 变量中。

如果用户已登录,$_SESSION["cart"] 中的所有购物车商品(如果有)都会被复制到数据库中,并且数据库中任何之前的购物车商品(如果有的话)也会被复制回 $_SESSION["cart"]。在这里,我将在会话和数据库中保留副本。

只要用户已登录,我就不会遇到购物车商品的问题。

由于我正在为客人使用会话,所以一旦关闭浏览器,我肯定会丢失购物车详细信息。

我该如何克服这种情况?

我正在尝试使用唯一的 cookie 值将客人购物车的详细信息存储在数据库中。请提出建议?购物车 Table 详情:

cart_id*
user_id
product_id
product_option_id
product_count
total_amount
time_stamp

user_id+product_id+product_option_id is Unique

这是我要制作的程序流程。它很模糊,所以你可以随心所欲地实现它。

  1. 创建一个随机会话 ID,甚至可能与 Math.random().
  2. 一样简单
  3. 检查购物车的数据库以查看该 ID 是否已被占用。如果是,请返回步骤 1。
  4. 使用该会话 ID 和购物车 ID 在购物车数据库中创建一个条目。
  5. 使用该会话 ID 创建一个 cookie $_COOKIE["carts"]
  6. 每次用户更新购物车(即添加或删除商品)时,检查会话 ID 的 cookie 并更改数据库中的信息。
  7. 提交购物车后,从 cookie 中检索会话 ID 并使用该会话 ID 检索数据库信息,然后使用数据库中的数据执行 PHP 购买(清空购物车)的魔术。
  8. 删除 cookie 并从数据库中删除条目。