在 PHP 中删除 JavaScript 会话 Cookie [重复]

Posted

技术标签:

【中文标题】在 PHP 中删除 JavaScript 会话 Cookie [重复]【英文标题】:Delete JavaScript Session Cookie in PHP [duplicate] 【发布时间】:2013-02-06 02:04:39 【问题描述】:

“浏览器”会话 cookie 在浏览器关闭时被删除。 在 javascript 中设置“浏览器”会话 cookie 时,不包括到期日期。

document.cookie= "MyCookieName = MyValue; path=/";

我想删除 php.ini 中的“浏览器”会话 cookie。 我试过这个:

setcookie('MyCookieName','', time() - 3600,'/'); 

很遗憾,cookie 没有被删除。

【问题讨论】:

cookie是否在同一个域下? 确定没有被删除,刷新页面? 你可以用ajax检查是否isset php session cookie 【参考方案1】:

首先,我认为 cookie 的创建方式(JS 或 PHP)没有任何区别。

您不能强制浏览器删除 cookie 文件。但是,您可以删除 cookie 的内容并将其过期。这正是您对上面的代码所做的事情。我可能会稍微调整一下:

setcookie('MyCookieName', '', 1, '/'); // no need to calculate one hour ago.

假设 cookie 有一些价值,你可以检查你的代码是否生效:

if ($_COOKIE["MyCookieName"] == '') 
  echo 'cookie was deleted';

在用户关闭浏览器之前,该文件仍然不会被删除。

要检查以上是否不起作用的另一件事是 cookie 路径(setcookie() 中的第四个参数。可能只设置了 cookie,例如,/blog。你应该能够通过使用 Safari webkit 开发工具或类似工具检查 cookie 来推断这一点。

【讨论】:

以上是关于在 PHP 中删除 JavaScript 会话 Cookie [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中使用 javascript 设置会话变量

如何从 PHP 会话数组中删除变量

带有警告的 PHP/Javascript 会话超时

关于 PHP 会话的几个问题

在PHP和JavaScript中设置Cookie会话存储(SessionStorage)和本地存储(LocalStorage)

PHP:会话中的会话?