首页 > 解决方案 > 无法删除cookie,它仍然显示在其他文件中调用它

问题描述

创建 cookie

$cookie_name = "userw";
$cookie_value = "John due";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day

if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}

删除 cookie

// set the expiration date to one hour ago
$cookie_name = "userw";

setcookie("$cookie_name", "", time() - 3600);
unset($_COOKIE[$cookie_name]);


$cookie_name = "userw";
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}

删除后读取cookie

$cookie_name = "userw";
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}

如果我在未设置的情况下读取文件中的 cookie,则 cookie 不会出现。但是当我再次阅读 cookie 时,它​​出现了。我在 xampp 中测试它。有没有人对此有任何解决方案?

标签: phpcookies

解决方案


删除 cookie 时,您需要指定与创建它时指定的相同路径(除非您想做非常具体的事情):

尝试这个:

setcookie($cookie_name, '', time() - 3600, '/');   // note the 4th param, '/'

推荐阅读