我有以下代码来检查会话是否存在以及是否未创建。
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 是否通过浏览器被清除,它应该重定向到登录页面。