使用Perl从服务器获取所有客户端的会话值

时间:2013-10-14 10:41:07

标签: perl session session-cookies

我正在Perl的购物车上工作。一旦客户将产品添加到购物车,我的客户希望产品无法供其他人使用。如果用户在未完成订单的情况下关闭浏览器,则产品应该再次可用。

是否可以从Perl中的服务器访问所有在线客户端的会话值,或者如果某人在未下订单的情况下关闭浏览器,我可以采用其他方式再次提供产品。

我不想在窗口关闭时使用弹出窗口,因为它们通常被用户阻止。

2 个答案:

答案 0 :(得分:1)

  

是否可以从服务器访问所有在线客户端的会话值

是。这种方式取决于您使用的会话库,但肯定是可能的。

当您将项目添加到某人的购物车时,将项目标记为主数据库中的项目会更简单。会话数据用于私有数据,而不是全局数据。

  如果一个人在没有下订单的情况下关闭浏览器,

是否有办法

无法可靠地检测浏览器是否已关闭。即使它有,但用户可能在同一站点上有另一个窗口未关闭。

解决此问题的通常基本方法是在将物品添加到购物篮中时将物品保留一定时间。您可以告诉用户他们有多少时间。这是预留座位的影院常用的方法。

  

您的座位将保留20分钟。如果您未在该时间内完成订单,则可能会将其释放,而其他人可能会保留订单。

稍微复杂的方法是在用户(由会话标识)与站点交互时延长预留时间。如果人们浏览网站并购买多件商品,您可能希望这样做。

您可以使用cron作业清理旧的预订(已过期)。

答案 1 :(得分:0)

当购物车中有商品告诉他们购物车中的商品可能会丢失给其他用户时,您可以让javascript显示提醒框。

假设它是最后一个项目并按下它们,你可以创建一个功能,向服务器提交你想要的任何信息,告诉用户放弃购物车中的项目。