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

Php 将购物车项目存储到Cookie和数据库中,php,javascript,mysql,session,Php,Javascript,Mysql,Session,我在一个电子商务网站上工作。当用户未登录到我的网站并单击“立即购买”按钮时,我希望将此信息存储到cookie以及数据库中。购物车的桌子看起来像 SHOPPING_CART ( sessionid int(10), itemid int(10), quantity tinyint(10) unsigned date_added datetime ); 主键是:(sessionid,itemid) 当用户关闭浏览器时,还应保留购物

我在一个电子商务网站上工作。当用户未登录到我的网站并单击“立即购买”按钮时,我希望将此信息存储到cookie以及数据库中。购物车的桌子看起来像

SHOPPING_CART 
(
     sessionid   int(10), 
     itemid      int(10), 
     quantity    tinyint(10) unsigned
     date_added  datetime
);
主键是:
(sessionid,itemid)

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

  • 当用户未登录到我的网站时,我应该根据什么来识别该用户
  • 我应该使用
    IP地址存储信息吗?如果是,那怎么办?在这种情况下,上述表格中的
    sessionid
    将是用户的IP地址。对吧?
  • 我是否应该为每个 访问我的网站,然后存储信息?如果是,那怎么办
  • 即使用户 关闭浏览器窗口?我应该从数据库中检索还是从数据库中检索 饼干
  • 还有其他更好的信息存储和检索方法吗
  • 注1:我可以使用大量可用的购物车软件/代码/库。但我想知道:如何识别用户?以及存储/检索数据。

    注2:每个项目的价格、订购、装运信息都存储在不同的表中

  • 您所能做的就是为用户创建一个唯一的假身份
  • 不可以。多个用户可能具有相同的IP地址,单个用户可能会更改其IP地址
  • 对。只要您要求启动会话,PHP就会为您创建会话。您必须将标识与此会话相关联。只需使用一个随机数,或者UUID生成器,或者类似的东西来生成一些独特的、不容易猜测的东西。然后将该标识存储在cookie中,以便当用户稍后回来时,您可以将其标识与新会话重新关联
  • 我只会将身份存储在cookie中。cookie只保存少量信息,用户可能会在不知情的情况下对其进行修改
  • 如果用户不登录,我看不到任何其他方法

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

  • 会话(这就是它的用途)
  • 没有
  • “临时会议”
  • 购物车在数据库中
  • 在什么意义上更好?保护强健的用户友好

  • @djangofan:序列化数据库中的结构化数据有什么意义?这让它变得不可征服。这并没有回答主要问题:如何将未登录的用户与存储在数据库中的购物车关联。基本上,我试图建议他将购物车简化为管道分隔字符串,尽可能短,并将该字符串存储在cookie和数据库中。您的权利,序列化是过分的,没有必要。