[英]cookies won't delete
这是我设置的登录cookie
setcookie('username[0]',$username,time()+(60*60*24*365));
setcookie('username[1]',$userid,time()+(60*60*24*365));
setcookie('username[2]',$subscribed,time()+(60*60*24*365));
setcookie('password',md5($password),time()+(60*60*24*365));
setcookie('admin',$admin,time()+(60*60*24*365));
这是我的注销功能
function logout($return) {
setcookie('username[0]', '', time()-(60*60*24*365));
setcookie('username[1]', '', time()-(60*60*24*365));
setcookie('username[2]', '', time()-(60*60*24*365));
setcookie('password', '', time()-(60*60*24*365));
setcookie('admin', '', time()-(60*60*24*365));
header( 'Location: ' . $return );
echo "<div class='fontall'><span class='fontdif'>You've been logged out. </span><a href='$return'>Click Here</a><span class='fontdif' to return</span></div>";
}
当我尝试注销并返回该页面时,我仍处于登录状态? 我做错了什么?
如果出现“无法修改标题”错误,则意味着您在setcookie
之前回显了某些内容。 在任何内容回显之前, setcookie
必须执行。
与其他标头一样,必须在脚本的任何输出之前发送cookie(这是协议限制)。 这要求您在所有输出(包括和标记以及任何空格)之前都先调用此函数。
// 1. Find the session
session_start();
// 2. Unset all the session variables
$_SESSION = array();
// 3. Destroy the session cookie
if(isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
// 4. Destroy the session
session_destroy();
那应该工作。 可能..u没有破坏会话?
代码似乎没有错-他们应该删除Cookie。 您确定cookie不会删除吗? 注销后,请尝试检查cookie是否存在。 您可以使用显示活动cookie的浏览器来执行此操作。 或者,您可以尝试使用PHP阅读cookie。
其次,您如何检查会话是否仍然有效? 您可以分享这段代码吗? 您在哪里检查会话-您是否在所有页面上都进行会话?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.