PHP每个用户多个并发会话

Joh*_*ers 15 php session-variables multiple-instances

我正在使用Apache上的PHP开发Web应用程序.$ _SESSION变量对于必须在页面中保持不变的信息使用得相当多.

我们需要每个用户能够打开多个并发会话,作为新选项卡或新窗口,具体取决于他们选择的浏览器.现在,当用户打开添加选项卡或窗口并转到站点时,将采用现有会话.如何防止这种情况,以便用户必须(或可能)登录并启动新会话,而不会干扰他们已经打开的任何现有会话?

我们的临时解决方法是使用多个浏览器(IE和FF),但这显然不是一种非常理想的做事方式.

Dav*_*ave 8

您描述的行为反对浏览器会话的概念.为什么用户想要多个会话?是否需要强制执行用户访问控制?如果是,请将用户分配给逻辑组并向特定组授予权限.用户是否需要代表其他用户执行某些操作?如果是这样,请围绕该概念设计网站,而不是尝试为单个用户创建多个会话.

如果你真的要做到这一点,你可以做一些可怕的喜欢沿着查询参数(传球很有安全感!页面作为会话ID之间),绕过实际$ _SESSION干脆管理自己的会话的概念.同样,这不正常,将来只会导致头痛/安全问题.

  • 啊,我现在明白了.:)您可以更改网站的工作方式,以便不在会话中保留销售人员的当前订单.相反,您可以使用更多RESTful方法[http://www.xml.com/pub/a/2004/08/11/rest.html],其中销售人员正在更新的订单的ID是Web的一部分页面的URL.这样,他们可以打开两个选项卡/窗口并修改两个订单,会话将完全脱离图片. (11认同)
  • 我们有这种需求的原因是由于应用程序的使用方式。例如,在任何给定时间,销售人员可能需要打开多个订单输入屏幕。这可能是因为出于各种原因需要将一个客户暂时移交给另一名工作人员。然后,销售人员需要能够为队列中的下一个人开始一个新订单,而不会干扰已经打开的订单,这将在原始客户交回时完成。对于旧系统,这是通过打开应用程序的多个副本(不是基于 Web)来完成的。 (2认同)
  • 接受以上评论的答案,而不是答案本身。 (2认同)
  • 上面的链接不好,这里是:http://www.xml.com/pub/a/2004/08/11/rest.html (2认同)