Firefox中的php cookie不会过期

时间:2012-08-07 07:12:55

标签: php session-cookies

我有一个简单的登录设置,我使用cookie存储登录ID#,并且可以显示此ID,用户名和其他信息。

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

<?php
if (isset($_COOKIE['id'])) {
setcookie("id","",1);
}
header("Location: redirectpage.html");
exit;
?>

哪个基本上会使cookie过期。但是,当我到达重定向页面时,其中包含以下代码:

If (isset($_COOKIE['id'])) {
//display "You are logged in already"
} else {
// show login form
}

它说我仍然登录,并且移动到不同的页面仍然说我已登录,并且显示cookie值给了我一个实际值,这意味着cookie还没有过期。我必须在这里遗漏一些东西,但为什么cookie没有过期?

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

2 个答案:

答案 0 :(得分:0)

尝试使用if(!empty($ _ COOKIE ...因为isset()认为要设置空字符串。请参阅此表:http://docs.php.net/manual/en/types.comparisons.php

答案 1 :(得分:0)

确保您尝试使用与创建cookie相同的参数删除Cookie。从php手册http://gr2.php.net/setcookie,在“常见陷阱”下:

  

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