我使用 session 和数据库用 PHP 开发了一个购物车。
如果用户未登录(访客),购物车商品将存储在 $_SESSION["cart"]
变量中。
如果用户已登录,则 $_SESSION["cart"]
中的所有购物车商品(如果有)都将复制到数据库,并且数据库中的所有先前购物车商品(如果有)都会复制到数据库中也复制回 $_SESSION["cart"]
。在这里,我将在 session 和数据库中保留副本。
只要用户登录,我的购物车商品就不会出现问题。
由于我正在为访客使用 session ,因此一旦关闭浏览器,我肯定会丢失购物车详细信息。
如何克服这种情况?
我正在尝试将访客购物车详细信息存储在数据库中,并具有唯一的 cookie 值。请提出建议?购物车表详细信息:
cart_id*
user_id
product_id
product_option_id
product_count
total_amount
time_stamp
user_id+product_id+product_option_id is Unique
最佳答案
这是我要制作的程序流程。它很模糊,因此您可以按照自己的意愿实现它。
- 创建一个随机 session ID,甚至可能与使用
Math.random()
一样简单。 - 检查购物车数据库以查看该 ID 是否已被占用。如果是,请返回步骤 1。
- 使用该 session ID 和购物车 ID 在购物车数据库中创建一个条目。
- 使用该 session ID 创建 Cookie
$_COOKIE["carts"]
。 - 每次用户更新购物车(即添加或删除商品)时,请检查 Cookie 中的 session ID 并更改数据库中的信息。
- 提交购物车后,从 cookie 检索 session ID,并使用该 session ID 检索数据库信息,然后使用 PHP 魔法使用数据库中的数据进行购买(清空购物车)。
- 删除 Cookie 并从数据库中删除该条目。
关于php - 带有 session 和数据库的PHP购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34550995/