setcookie("userId","",time()-1); 这个不起作用,求解!!!
太郁闷了,我自己测试得到以下结果:
不选择自动登录时,可以正常注销,并且成功删除了session内容,不能直接访问后台页;
选择自动登录时,直接关闭浏览器,重新打开浏览器可以访问后台页,点击注销按钮回到登录页,此时不登录,通过url可以直接访问到后台页,且可以显示(欢迎你+用户名)。
我初步得到的结论是cooki没有清除掉,以下是我的部分关键代码
if($autoFlag){
setcookie("userId",$result['id'],time()+7*24*3600);
setcookie("userName",$result['username'],time()+7*24*3600);
}
/**
* 检查是否登录
*/
function checkLogin(){
if($_SESSION['userId'] == "" && $_COOKIE['userName'] == ""){
alertMes("请先登录", "../login.php");
}
}
/**
* 注销管理员登录
*/
function logout(){
$_SESSION = array();
if(isset($_COOKIE[session_name()])){
setcookie(session_name(),"",time()-9999);
}
if(isset($_COOKIE['userId'])){
setcookie("userId","",time()-9999);
}
if(isset($_COOKIE['userName'])){
setcookie("userName","",time()-9999);
}
session_destroy();
header("location:../login.php");
}
<?php
if(isset($_SESSION['username'])){
echo $_SESSION['username'];
}elseif (isset($_COOKIE['userName'])){
echo $_COOKIE['userName'];
}
?>