2

所以我的 index.php 上有这段代码:

<?php if(isset($_POST['cookie'])) { setcookie("RememberMe", "Yes", time()+1209600);  } ?>

如果用户选中了记住我框,那么它将设置一个名为“记住我”的 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?关于为什么的任何想法?

4

4 回答 4

2

您可能需要检查设置 cookie 的路径是否正确。默认情况下,PHP 将 cookie 路径设置为它所在的目录,并且从不同的位置将不可用(也不能删除)。

还有一些提示:

  • 没有必要取消设置$_COOKIE$_SESSION
  • 而不是使用带有 HTTP 标头的元标记重定向:

    header('Location: /index.php'); // or whatever is the path you want to redirect to
    
于 2013-02-11T12:33:46.747 回答
0

Cookie 取消有时可能需要与设置相同的时间值。

setcookie("RememberMe", "", time()-1209600);
于 2013-02-11T12:41:26.207 回答
0

不是最干净的,但检查时区是否正确 确保您正在核对正确的 cookie(区分大小写) 失败所有他们写的 cookie 无论如何都会核对它所以...

Setcookie('mycookie') // 用空白条目核对 cookie

于 2013-02-11T12:31:37.330 回答
0

删除此行

unset($_COOKIE['RememberMe']);

于 2013-02-11T12:55:29.523 回答