【问题标题】:shopping cart in php with session & database带有会话和数据库的 php 购物车
【发布时间】:2016-04-05 16:41:22
【问题描述】:

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

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

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

只要用户登录,我的购物车商品就没有问题。

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

我该如何克服这种情况?

我正在尝试将客人购物车的详细信息存储在数据库中,并具有唯一的 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

【问题讨论】:

    标签: php session cart


    【解决方案1】:

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

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

    【讨论】:

    • 我将每个产品添加到与用户 ID 关联的购物车数据库中,如果用户是访客,我将创建一个随机 ID 并将其保存到数据库中。不是吗?我已经用表格详细信息更新了我的问题,如果我遗漏了什么,请发表评论
    • 不要只相信唯一的随机...md5(uniqid(rand(), true))..所以它是独一无二的..你不需要步骤 2..
    猜你喜欢
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    相关资源
    最近更新 更多