php - 带有 session 和数据库的PHP购物车

标签 php session cart

我使用 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

最佳答案

这是我要制作的程序流程。它很模糊,因此您可以按照自己的意愿实现它。

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

关于php - 带有 session 和数据库的PHP购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34550995/

相关文章:

php - 状态不发回到表单上?

php - 使用 AWS IAM 的临时凭证

zend-framework - Zend session : Common session at multi apps

oracle - 浏览器关闭时防止单用户多登录

php - 在 Woocommerce 中检查产品类别的购物车项目

php - sql从表中检索数据并使它们链接

PHP/AJAX 检查 session 变量是否改变

express - 将expressjs应用程序迁移到无服务器-express-session问题

php - 当 WooCommerce 购物车和结帐页面上的购物车中有特定产品时,更改 "Total"文本

javascript - 在 'updated_cart_totals' jQuery 事件上获取 WooCommerce 刷新购物车总数