PHP用户会话在选项卡之间不持久



我遇到了一个以前从未见过的问题。我将登录的用户会话信息存储在$_SESSION['user']变量中(就像我在所有其他站点上所做的那样)。但是,当我在同一个Chrome浏览器窗口的另一个选项卡中打开该网站时,会话不会在该选项卡中持续存在。我在一个标签中注销,在另一个标签中登录。这让我感到困惑,因为我确信用户会话是浏览器级别的,而不是选项卡级别的。这是一个正常的干净的Chrome安装,没有扩展。

我可以在登录选项卡上导航,做硬刷新和清除缓存,所有这些好东西,仍然保持登录。但在它旁边的选项卡中,我可以想刷新多少次就刷新多少次,也可以导航到各种页面,但仍然处于注销状态。我可以在两个选项卡之间跳转并同时导航,但问题仍然存在。

我在每页的开头都有session_start()。我甚至在站点的页脚中响应用户会话,果然,它完全填充在一个选项卡中,而在另一个选项卡中完全没有。

编辑:为了确认,我在我的域上创建了一个简单的test.php,包含以下代码:<?php session_start(); echo $_SESSION['user']['uid']; ?>。我完全退出了我的会话。我用两个独立的标签打开我的网站。我登录了一个标签。然后在两个选项卡中将/test.php添加到我的URL中。在第一个标签中,我有一个空白页。在第二个例子中,我得到1(我的用户ID)。即使在多次硬刷新后,空白选项卡仍保持空白,而"1"Page停留在"1"即使在多次硬刷新之后。我怎样才能防止这种行为呢?用户很可能想要使用多个选项卡来导航,而这种行为阻止了这一点。

有人能想到发生这种情况的原因吗?

现在遇到同样的问题....这真的很令人沮丧。一个chrome标签显示不同的网址,最糟糕的是,它是相同的url和持久刷新两个标签。这意味着会话不会被销毁和重新创建。真奇怪。

最新更新