将购物车项目存储到cookie和数据库中

时间:2011-08-08 21:13:41

标签: php javascript mysql session

我正在开发一个电子商务网站。当用户未登录我的网站并点击“立即购买”按钮时,我想将此信息存储到cookie以及数据库中。购物车的表格类似于

SHOPPING_CART 
(
     sessionid   int(10), 
     itemid      int(10), 
     quantity    tinyint(10) unsigned
     date_added  datetime
);

主键是:(sessionid, itemid)

当用户关闭浏览器时,还应保留购物车项目。现在我的问题如下:

  1. 当用户未登录我的网站时,我应该以什么为基础识别用户?
  2. 我应该使用IP address存储信息吗?如果是,那么如何?在这种情况下,上述表中的sessionid将是用户的IP地址。正确?
  3. 我应该为每个用户创建一个临时会话 访问我的网站,然后存储信息?如果是,那么如何?
  4. 即使用户,如何保存购物车项目 关闭浏览器窗口?我应该从数据库或 饼干?
  5. 存储和检索信息的其他任何更好的方法?
  6. Note1 :我可以使用大量购物车软件/代码/库。但我想知道:如何识别用户?并存储/检索数据。

    Note2 :每件商品的价格,订购,发货信息都存储在不同的表格中。

2 个答案:

答案 0 :(得分:5)

  1. 您所能做的就是为用户创建一个独特的假身份
  2. 否。多个用户可能具有相同的IP地址,并且单个用户可能会更改其IP地址
  3. 是。一旦您要求开始会话,PHP将为您创建会话。您必须将身份与此会话相关联。只需使用随机数或UUID生成器或类似的东西来生成独特且不易猜测的东西。然后将身份存储在cookie中,以便当用户稍后返回时,您可以将其身份与新会话重新关联。
  4. 我只是将身份存储在cookie中。 Cookie只保存少量信息,用户可能会在不知情的情况下对其进行修改。
  5. 如果用户没有登录,我看不到任何其他方式。

答案 1 :(得分:0)

您唯一需要做的就是将sessionid设置为客户端cookie。 如果客户返回并提供了一个sessionid cookie,则用他的新sessionid更新购物车表(并在cookie中设置新的sessionid)。

  1. 会话(就是它的用途)
  2. 没有
  3. '临时会议'?
  4. 购物车在数据库中
  5. 在什么意义上更好?安全?强大的?用户友好吗?
相关问题