我在一个页面上设置了一个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?
答案 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)
的原因