【发布时间】:2012-11-23 05:42:18
【问题描述】:
我有以下代码来检查会话是否存在以及是否未创建。
session_start();
$loginExists='';
$show=1;
if(isset($_SESSION['username'])){
$loginExists = '<div style="color:#006633; font-family: calibri, Times, serif; font-size:1.3em; font-weight:bold; margin-left:4%; margin-top:2%;">You are already logged in!</div>';
$show = 0;
}
elseif (!isset($_SESSION['username'])){
if (isset($_COOKIE['username'])){
$_SESSION['username'] = $_COOKIE['username'];
$loginExists = '<div style="color:#006633; font-family: calibri, Times, serif; font-size:1.3em; font-weight:bold; margin-left:4%; margin-top:2%;">You are already logged in!</div>';
$show = 0;}
cookie的设置方式如下:
setcookie('username',$row['username'],time() + 10*24*3600,"/mysite/","");
我的问题是当我在 IE8/9 中清除 cookie 时,它无法清除 cookie。我仍然可以导航到我的添加表单。在 Firefox 或 Chrome 中没有问题。
我正在尝试通过转到 Internet 选项 > 删除(浏览历史记录)> 检查 Cookie 并删除它来删除 cookie。
atm 很困惑。
编辑:
添加表单(如何检查会话):
if (!isset($_SESSION['username'])){
if (isset($_COOKIE['username'])){
$_SESSION['username'] = $_COOKIE['username'];
}
else{
$_SESSION['addForm'] = 1;
header("Location:loginForm.php");
}
所以你可以看到 cookie 是否通过浏览器被清除,它应该重定向到登录页面。
【问题讨论】:
-
IE 提示。关闭它。转到控制面板,找到互联网设置并从那里清除 cookie(和文件,如果需要)。然后重新打开IE。请注意,如果您将其保持打开状态并点击刷新,它仍会发送以前的 cookie - 关闭它会解决此问题。
-
@Robbie:你是对的。这是 IE 的怪癖吗?
-
是的。我添加为完整性。
标签: php internet-explorer