如何在PHP中删除/取消设置Cookie?

14

我想使用以下代码取消/删除我的现有cookie:

setcookie ("user", "", time()-1); 
unset($user);

但是cookie无法被删除或取消设置。那么问题是什么?


2
可能是重复的问题:删除 cookie - Zuul
// 必须提供根路径或任何特定的cookie路径// 设置COOKIE setcookie("user", "", time() + 3600, '/');// 取消COOKIE setcookie("user", "", time()-100, '/'); // 过去时间 - Dileep Kheni
你可能会发现$cookie->delete()很有用,它可以在这个独立库中找到。 - caw
7个回答

22

你只能使用以下方法取消设置Cookies,可能没有效果

尝试这个

setcookie ("user", "", time() - 3600);

我按照你说的做了,但是什么也没有得到。 - Someone
你是否将“user”更改为你的cookie名称?如果是这样,可能会出现其他问题,但在PHP中我们只能以这种方式取消设置cookie... - Sonal Khunt

4
删除 cookie 时,请确保过期日期在过去。
删除示例:
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);

我按照你说的做了,但是什么也没得到。 - Someone

3

//必须提供根路径或任何特定的cookie路径

//SET COOKIE
setcookie ("user", "", time() + 3600 , '/'); 

//UNSET COOKIE
setcookie ("user", "", time()-100 , '/' ); // past time

3

正如已经提到的 - 当删除 cookie 时,您应确保过期日期是在过去。

但是,您还必须使用相同的路径和甚至域来进行删除,就像创建 cookie 时一样,因此如果按照以下方式创建 cookie:

setcookie ("user", "John", time()+7200, '/', 'mydomain.com'); 

要删除此 cookie,请使用以下代码

setcookie ("user", "", time()-3600, '/', 'mydomain.com');

同时最好使用过去的具体日期,而不是time() - 3600

。 (注:该句为 IT 技术相关内容,涉及代码编写。)

3
setcookie ("user", "", time() - 3600);
//will reset cookie(client,browser)
unset($_COOKIE["user"]);
// will destroy cookie(server)

请使用代码块将您的代码包装起来,以提高可读性。 - hina10531

3

我认为这段代码没有问题。

引用文档中的内容:

当删除cookie时,应确保过期日期是过去的,以触发浏览器中的删除机制。

setcookie ("TestCookie", "", time() - 3600);

您可以选择更早的时间,以避免计算机时间不准确造成的问题。

此外,在某些情况下,实际上还有必要取消设置 $_COOKIE['TestCookie']


0

除了包含 Cookie 路径的代码之外,此页面上的所有内容都是不正确的。除非指定了路径,否则不会删除 Cookie。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接