Cookie不在页面之间保存

时间:2014-08-22 17:43:34

标签: php cookies setcookie

我在一个页面上设置了一个cookie,代码如下

setcookie(codeDone,true);

这可行,但后来我在另一页上将其重置为假

setcookie(codeDone,false);

然而,当我回到第一页时,在将其设置为真的部分之前,我有

if($_COOKIE['codeDone'] == true){
$cookie = $_COOKIE['codeDone'];
$done = false;
echo"cookie set to $cookie";
}
setcookie(codeDone,true);

由于某种原因,ocokie被设置为true,因为这个if的内容总是被执行

为什么cookie返回true(1)如果在上一页中我将其设置为false?

1 个答案:

答案 0 :(得分:0)

Cookie只是字符串值。

下面的代码是一个例子,用于处理字符串为boolean:

ob_start();

if (isset($_COOKIE['codeDone'])) {

    //this is your magic
    $result = filter_var($_COOKIE['codeDone'], FILTER_VALIDATE_BOOLEAN);

    if ($result === true) {
        $cookie = $_COOKIE['codeDone'];
        $done = false;
        echo "Current Cookie Status: ".$_COOKIE['codeDone'];
    }
}
setcookie('codeDone', 'true');

ob_end_flush();

BTW:执行echo后你不能修改标题(setcookie)。这就是我使用输出缓冲区(ob_start / ob_end_flush)

的原因