所以我在index.php上有这段代码:
<?php if(isset($_POST['cookie'])) { setcookie("RememberMe", "Yes", time()+1209600); } ?>
如果用户选中了“记住我”框,则会设置名为RememberMe的Cookie,为期2周。这部分工作正常。
现在我遇到的问题是当他们按下注销时删除这个cookie。
按下注销后,它们会被重定向到logout.php,其中包含以下代码:
<?php include_once('config.php');
include_once('functions.php');
unset($_COOKIE['RememberMe']);
setcookie("RememberMe", "", time()-3600);
$_SESSION = array(); session_destroy();
?>
<meta http-equiv="refresh" content="0;../index.php">
但是出于某种奇怪的原因,不会删除cookie?关于为什么的任何想法?
答案 0 :(得分:2)
您可能想要检查Cookie设置的路径是否正确。默认情况下,PHP将cookie路径设置为它所设置的目录,并且它将不可用(也不可能删除)来自不同的位置。
更多提示:
$_COOKIE
和$_SESSION
而不是使用带有HTTP标头的元标记重定向重定向:
header('Location: /index.php'); // or whatever is the path you want to redirect to
答案 1 :(得分:0)
不是最干净但是 检查时区是否正确 确保您正在使用正确的cookie(区分大小写) 他们所有人都没有写过cookie,无论如何都要核对它 所以......
Setcookie('mycookie')//用空白条目核实cookie
答案 2 :(得分:0)
Cookie取消有时可能需要与设置时相同的时间值。
setcookie("RememberMe", "", time()-1209600);
答案 3 :(得分:0)
删除此行
unset($_COOKIE['RememberMe']);