Php 如何通过访问会话信息使会话超时并在超时之前执行操作?

Php 如何通过访问会话信息使会话超时并在超时之前执行操作?,php,phpmyadmin,session-variables,shopping-cart,Php,Phpmyadmin,Session Variables,Shopping Cart,我正在将购物车的项目存储到会话数组中,但由于产品ID和数量存储在客户端,因此当客户想要添加一个可用数量已添加到其他客户购物车中的项目时,我无法对项目数量进行检查 因此,我在我的Products表中添加了一个名为added_to_cart的列,该列在将产品/项目添加到客户会话购物车时递增 现在,我想在客户一小时内没有任何活动时暂停会话,并通过检查非活动(待超时)php会话中存储的内容来减少添加到购物车中的added\u Products ----------------------

我正在将购物车的项目存储到会话数组中,但由于产品ID和数量存储在客户端,因此当客户想要添加一个可用数量已添加到其他客户购物车中的项目时,我无法对项目数量进行检查

因此,我在我的
Products
表中添加了一个名为
added_to_cart
的列,该列在将产品/项目添加到客户会话购物车时递增

现在,我想在客户一小时内没有任何活动时暂停会话,并通过检查非活动(待超时)php会话中存储的内容来减少添加到购物车中的
added\u

    Products
    -----------------------------------------
    : p_id  : available_qty : added_to_cart :
    -----------------------------------------
    : p-123 :  57           : 3             :
    -----------------------------------------
    : p-287 :  32           : 8             :
    -----------------------------------------
1.如果客户从此不再访问该站点(即不调用session_start()),是否可以执行此操作。如果可以,如何执行


2.这是正确的建议解决方案吗?在亚马逊和易趣这样的大型在线存储中,他们是如何做到的?

您应该在下订单/提交订单时进行最终数量检查,而不是在添加到购物车时。想想会发生什么,如果有人将你系统中的所有产品添加到购物车(只是为了好玩)。。您的电子商务商店将售罄:)

所以应该是这样的:

  • 查看项目可用数量(库存数量)时,使用数据库中的值(真实、当前、可用数量)
  • 提交订单时,检查订单数量是否可用。如果没有,请通知用户。如果是,则进行缩减并保存到DB
还有很多免费的电子商务软件,如:Magento()

定时会话:

但是,如果您真的想进行会话,您可以:

  • 使用时间戳将会话保存到数据库
  • 用户在每个页面请求上更新时间戳(如“上次访问”)
  • 定期删除旧会话行和“免费”保留产品

请记住,会议(与保留产品相关)应该非常短(如30分钟?)。

1:是的,这是可能的。2:不,不是。当有人买东西时,数量会减少。若你们在超市里,带一些产品去购物篮。当你付钱时,而不是当你将产品添加到购物篮时,产品就会离开市场。想象一下,当你将一些产品添加到购物车时,当你即将结账时,会是多么悲惨的经历,网站上说,您添加到购物车中的产品不再可用。客户会觉得他在您的网站上浪费了时间。我想说的是,当您添加到购物车中时,该产品并未售罄,但在有人将其放在购物车中时,该产品不可用。您不会在购物车中从其他购物车中挑选产品你喜欢购物吗?电子商务和“现实世界”商店是两码事。正如我所说的,如果有人只是在玩游戏,你的商店就会被卖光。正如我所解释的,世界上所有的网络商店都在工作。如果你想用不正当的方式做这件事,尽管做吧。。