【发布时间】:2015-03-06 13:36:50
【问题描述】:
我使用 PHP 5.4.36、Apache/2.2.15、CakePHP 2.5.6。
当访问者点击“登录”按钮时,我会检查会话数据。
- 如果用户已经登录,我将用户重定向到成员部分。
- 如果用户未登录,但用户已登录,请记住 cookie,我还将用户重定向到成员部分。
- 如果用户没有登录,没有记住我的 cookie,我将用户重定向到登录表单。
- 如果用户未登录,rememberme cookie 存在,但没有 session id cookie 和 session 文件,我创建新的 session 和 session cookie。
所以对于最后一种情况,有时用户可以同时打开 2 个登录页面。
在这种情况下,会打开 2 个选项卡。
- 第一个选项卡:与服务器连接,不存在会话,不存在会话 ID cookie,存在记忆 cookie。创建了新的会话文件,创建了会话 ID cookie,并且用户已登录。
- 第二个标签:与服务器连接,未找到会话,未找到会话 id cookie,找到 rememberme cookie。因为第一个选项卡仍在尝试登录,并且没有创建会话文件和会话 ID cookie,所以创建了新会话。
这两个选项卡之间的请求时间接近 0.5-1.5 秒。如果差异超过 2 秒,则没有问题。
这个问题在 1000 个请求中变为 1 次,但是是否可以禁用此问题?
编辑:
我不希望用户同时使用不同的用户名登录。我希望用户只登录 1 次。但在这种情况下,使用相同的凭据创建了 2 个会话。所以系统使用最后一个会话。以前的会话变得多余。我的数据库记录也显示了两个不同的登录,尽管用户只登录了一次。
【问题讨论】:
-
您想让用户同时使用两个不同的用户名登录吗?在同一个浏览器的两个不同标签页中?
-
到目前为止有关于这个问题的更新吗?
-
@Naruto 不,对不起。
标签: php apache session cakephp cookies