firefox中的php cookie不会过期

firefox中的php cookie不会过期,php,session-cookies,Php,Session Cookies,我有一个简单的登录设置,我使用cookie来存储登录ID#,通过这个ID,可以显示用户名和其他信息 因此,为了注销,我运行以下php脚本来注销: <?php if (isset($_COOKIE['id'])) { setcookie("id","",1); } header("Location: redirectpage.html"); exit; ?> 它表示我仍在登录,移动到另一个页面仍表示我已登录,显示cookie值会给出一个实际值,表示cookie尚未过期。我一定是遗漏了

我有一个简单的登录设置,我使用cookie来存储登录ID#,通过这个ID,可以显示用户名和其他信息

因此,为了注销,我运行以下php脚本来注销:

<?php
if (isset($_COOKIE['id'])) {
setcookie("id","",1);
}
header("Location: redirectpage.html");
exit;
?>
它表示我仍在登录,移动到另一个页面仍表示我已登录,显示cookie值会给出一个实际值,表示cookie尚未过期。我一定是遗漏了什么,但为什么饼干没有过期呢


注意:我将过期日期从time()-60或某个值更改为1,但这并没有改变任何内容,删除if语句使cookie在每次php代码运行时过期仍然不起作用。

尝试使用if(!empty($\u cookie…因为isset()考虑设置空字符串。请参阅下表:

确保尝试使用与创建cookie相同的参数删除cookie。从php手册中的“常见陷阱”下:

必须使用设置的参数删除Cookie 如果value参数为空字符串,则为FALSE,并且 其他参数与之前对setcookie的调用相匹配,然后是cookie 将从远程客户端删除具有指定名称的。此 通过将值设置为“已删除”和过期,在内部实现 时间到了过去的一年


您不能直接删除cookie。您将过期日期设置为过去,并将其留给浏览器删除。请看以下内容:@ZombieHunter,
setcookie
将unix时间戳作为第三个参数。值1为过去。cookie中有什么内容?如果我在计算机中创建一个新cookie并将其设置为
id=1
,我会自动登录到您的站点吗?第1课:永远不要信任用户提供的数据,包括
$\u GET
$\u POST
$\u请求
$\u COOKIE
,以及
$\u文件
$\u服务器['HTTP.*]的一些值
Carlos,这不是我的登录方式,id是一个11位数的数字,如果该数字无效,它将不会在ZombieHunter中记录你,你是对的,我的意思是过期,因此浏览器无法再访问该值。根据我的研究,1表示它设置为1970年开始后的1秒,即过去的日期e如果这是您的意思,但您的意思是如果我将cookie设置为:setcookie(name,value,expire,“/”,”),我就不能将其删除为:setcookie(name,value,newexpire)?我实际上添加了最后两个参数,并且成功了!谢谢!确实,您必须具有相同的参数。别忘了将适合您的答案标记为“已解决”点击“勾选”
If (isset($_COOKIE['id'])) {
//display "You are logged in already"
} else {
// show login form
}