set cookie未设置以下代码的值。
<?php
session_start();
ob_start();
unset($_SESSION['adminname']);
session_destroy();
if(isset($_COOKIE['adminremember_me'])) {
$past = time() - 100;
setcookie('adminremember_me', gone, $past);
}
header("Location: login.php");
exit();
?>
虽然未显示错误消息,但Cookie不会因为setcookie donot正在删除。 有趣的是,我有另一个具有相同代码结构但具有不同cookie名称的文件,用于普通用户注销,并且该文件有效。
我将(htdocs / site / admin /)中的admin注销文件移动到(htdocs / site),现在注销工作了!认真做出了哪些改变?
答案 0 :(得分:0)
您可以拥有多个具有相同名称但路径不同的Cookie。因此,如果脚本位于/folder1/folder2/mypage.php中,则可以使用路径/ folder1的1个cookie和路径/ folder1 / folder2的另一个cookie,并且两个cookie可以具有相同的名称。
我的猜测是你要删除的cookie属于不同的路径(默认情况下,如果你没有指定路径,那么它会假定脚本所在的文件夹)。要删除它,您必须手动设置path参数以匹配cookie的路径参数。例如:
setcookie('adminremember_me', gone, $past, "/");
或
setcookie('adminremember_me', gone, $past, "/folder1/");
要查看现有Cookie的路径,您需要使用浏览器的Cookie查看器查看其上设置的路径。
编辑:要回答编辑中的问题,当您移动注销文件的位置时,您将其移动到与cookie上设置的路径相同的文件夹中(因此默认值现在相同)。如果要将脚本移回旧位置,只需明确设置文件夹所在位置的路径