在chrome上,我遇到以下问题:
- 使用用户名和密码登录,为用户名和登录会话创建cookie
- 查看主页面(其中有一个用于检查登录会话的脚本)
- 注销
- 尝试查看主页。但我被引导回登录屏幕/主页
- 刷新并尝试查看主页。引导返回登录屏幕
- 浏览到任何其他网站
- 返回
example.com/mainpage.php
,我现在可以查看它(使用以前的用户名)
问题是,很明显,当用户返回网站时,仍然应该注销,并且在登录之前无法查看mainpage.php。
我对此感到非常困惑。一时兴起,我检查了一下其他浏览器是如何处理的。Safari、Firefox或IE上也不会出现这种问题。它们会正确地将用户踢回主页。
chrome似乎是在"暂停"会话,而不是正确结束会话,然后在我导航回网站时重新启动会话。
相关脚本如下:
// log out script
session_start();
setcookie("username", "", time()-360000);
setcookie("token", "", time()-360000);
$_SESSION["Login"] = "no";
// The mainpage script
if ($_SESSION["Login"] != "YES")
header("location: home.php");
我找到了解决方案。我想我会在这里为任何仍然困惑的人记录下来。
不知何故(我无法理解)通配符重定向并没有将www.和非www.对该网站的访问压缩为相同的访问(我使用了www.)。
由于某种原因,一些页面正在使用配音进行处理,而其他页面则没有。尤其是在离开网站并重新访问时。。。注销终止了www版本中的会话,但随后返回到非配音版本,就像"哦仍然登录"