我无法用我的PHP代码删除cookie。当我按logout
时,页面会刷新但Cookie仍然存在。
<?php
if (isset($_COOKIE["admin_login"])) {
echo "Cookie: ".$_COOKIE["admin_login"]."<br>";
}
if (isset($_GET["logout"])) {
setcookie("admin_login", "", time()-3600);
unset($_COOKIE['admin_login']);
}
?>
<html>
<body>
<a href="?logout">Logout</a>
</body>
</html>
答案 0 :(得分:1)
这可能是因为您在设置cookie之前输出数据。
setcookie()定义了一个与其他HTTP头一起发送的cookie。与其他标头一样,Cookie必须在脚本的任何输出之前发送(这是协议限制)。
if (isset($_COOKIE["admin_login"]))
anything_that_doesnt_output_text(); // text was causing problem most likely.
if (isset($_GET["logout"]))
setcookie("admin_login", "", time()-3600); // also, no unsetting
答案 1 :(得分:0)
感谢您的回答。在找不到解决方案后,我试图切换到SESSION。
经过一些研究,我认为它很有效。谢谢大家的帮助。如果有人有兴趣,这是我的最终代码。
<?php
session_start();
if (isset($_GET["logout"])) {
session_unset();
session_destroy();
header("Location: ../login.php");
}
if (isset($_SESSION["admin_login_session"])) {
echo "Cookie: ".$_SESSION["admin_login_session"]."<br>";
} else {
header("Location: ../login.php");
}
?>
<html>
<body>
<a href="?logout">Logout</a>
</body>
</html>