好的,我用这段代码来设置饼干
setcookie("search", "active", time()+3600);
我用它来删除饼干
setcookie("search", "active", time()-3600);
我用它来检查和检索饼干
<?
if (isset($_COOKIE["search"]))
{
if ($_COOKIE["search"] === "active")
{
echo "cookies active"."<br/>";
echo $_COOKIE["search"];
}
else
{
echo "cookies is not active";
}
}
else
{
echo "no cookies";
}
?>
但是设置的 cookie 会一次又一次地回来,即使我在刷新页面时使用上面指定的方法删除了它。
不确定为什么会出现此错误,但之前见过这个
例 : 调用
setcookie ( "user", "Alex Porter", time () + 3600 );
setcookie ( "search", "active", time () + 3600 );
var_dump($_COOKIE);
setcookie ( "search", "", time () - 3600 );
仅输出
array(1) {
["user"]=>
string(11) "Alex Porter"
}
预期成果
array(2) {
["user"]=>
string(11) "Alex Porter"
["search"]=>
string(6) "active"
}
结论
我认为你会只坚持一个饼干,或者一次删除所有饼干
尝试
注意* 确保setcookie
始终位于页面顶部,并且之前没有输出
setcookie ( "search", "active", time () + 3600 );
//setcookie ( "search", "", time () - 3600 ); // uncomment when you want to remove cookie
if (isset ( $_COOKIE ["search"] )) {
if ($_COOKIE ["search"] === "active") {
echo "cookies active" . "<br/>";
echo $_COOKIE ["search"];
} else {
echo "cookies is not active";
}
} else {
echo "no cookies";
}
在 PHP 中删除 cookie 不会影响 $_COOKIE 超级全局,因为此数组是在脚本运行之前填充的。但是,当您加载下一页时,它不应再存在于 $_COOKIE 中。