如何解决PHP 用户会话不会在选项卡之间持续
我遇到了一个我以前从未见过的问题。我将登录的用户会话信息存储在 $_SESSION['user']
变量中(就像我在所有其他站点上所做的一样。)但是当我在另一个选项卡中打开站点时,在同一个 Chrome 浏览器窗口中,会话不会持续在那个选项卡中。我在一个选项卡中注销,然后在另一个选项卡中登录。这让我感到困惑,因为我确信用户会话是浏览器级别的,而不是选项卡级别的。这是正常的 Chrome 全新安装,没有扩展。
我可以在登录选项卡上导航就好了,硬刷新并清除缓存,所有这些好东西,仍然保持登录状态。但在它旁边的选项卡中,我可以刷新多次正如我想要的那样导航到各种页面,但仍然保持注销状态。我可以在两个选项卡之间跳转并同时导航它们 - 问题仍然存在。
我在每一页的开头都有 session_start()
。我什至在网站的页脚中回显用户会话,果然,它完全填充在一个选项卡中,而在另一个选项卡中完全没有。
编辑:为了确认,我在我的域上创建了一个简单的 test.php,其中包含以下代码:<?php session_start(); echo $_SESSION['user']['uid']; ?>
。我完全退出了我的会话。我在两个单独的选项卡中打开了我的网站。我登录了一个选项卡。然后我在两个选项卡中将 /test.php 添加到我的 URL 中。在第一个选项卡中,我得到了一个空白页。在第二个中,我得到了 1(我的用户 ID)。即使经过多次硬刷新,空白选项卡仍保持空白,即使经过多次硬刷新,“1”页面仍保持“1”。我怎样才能防止这种行为?用户很可能希望使用多个选项卡进行导航,而这种行为会阻止这种情况发生。
有人能想到发生这种情况的任何原因吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。