12

我有在登录检查正常时设置的代码:

if((isset($_POST["remember_me"]))&&($_POST["remember_me"]==1))
    {
    setcookie('email', $username, time()+3600);
    setcookie('pass', $pass, time()+3600);
    }

现在,当我单击注销链接(logout.php)时,我这样做了:

<?php session_start();
setcookie("email", '', 1, "");
setcookie("pass", '', 1, "");
$_SESSION["login"] = "";
header("location: aforum/enter_furom.php");
?>

我没有使用销毁会话,因为我不想销毁所有会话……现在销毁会话工作正常……但是当我尝试取消设置 cookie 时,浏览器(所有浏览器:资源管理器、chrome、firefox , mozilla) 给我一个错误,说新的 cookie 无法设置……有什么帮助取消设置上述 cookie 吗?

4

8 回答 8

15

要么使用超全局_COOKIE变量:

unset($_COOKIE['mycookiename']);

setcookie()使用cookie 名称调用

setcookie('mycookiename');

要在注销时重置 cookie,请使用:

setcookie('pass');
setcookie('email');

为您登录检查:

if(
  isset($_POST["remember_me"]) &&
  $_POST["remember_me"]==1  &&
  $_COOKIE['pass'] != NULL &&
  $_COOKIE['email'] != NULL &&
)
于 2012-09-19T09:20:34.430 回答
9
setcookie('cookiename', '', time()-3600);
于 2012-09-19T09:40:36.630 回答
2

在您的浏览器中检查 cookie 运行的目录。并通过指定 cookie 的路径来取消设置。就像在示例中一样,如果 cookie 目录是/aforum/

setcookie ("email","",time()-1,"/aforum/","http:// yourdomain.com");
于 2014-05-24T08:15:51.273 回答
2

只需将 cookie 的值设置false为即可取消设置,

setcookie('cookiename', false);

这是最简单的方法。

于 2019-11-12T07:24:32.743 回答
1

要在 PHP 中取消设置 cookie,只需将它们的到期时间设置为过去的某个时间。例如:

$expire = time() - 300;
setcookie("email", '', $expire);
setcookie("pass", '', $expire);
于 2012-09-19T09:39:12.717 回答
1

尝试这个

    setcookie ("email", "", time() - 3600);
    setcookie ("pass", "", time() - 3600);
于 2017-10-11T05:09:13.980 回答
0

至少在 Chrome 和 IE8+ 中,以下内容将从浏览器中删除 cookie。但是,在重新加载页面之前,它不会反映在$_COOKIE数组中。

setcookie('cookiename','',0,'/',$cookieDomain)

您可以在这里省略一些参数,但重要的是您设置了一个空字符串,这会从浏览器中删除 cookie。

于 2015-04-09T16:02:57.307 回答
0

您需要将过期时间设置为过去,例如

setcookie('email', '', time()-3600);

此外,您应该Absolute URI为您的header('Location:' ....).

于 2012-09-19T09:42:09.143 回答