如何删除真实的cookie?

时间:2014-02-12 05:23:46

标签: javascript php

我设法在IE中严重破坏我的cookie字符串,它现在看起来像这样:

"; __atuvc=4%7C7; PHPSESSID=e4db10eb5d4409ba3203a7c1d533fafd; PHPSESSID=75a04bdcf604dd607d383da774c0f72a; __utmc=51433896; __utma=51433896.100703801.1392175783.1392175783.1392178863.2; __utmb=51433896.5.10.1392178863; __utmz=51433896.1392175783.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __atuvc=3%7C7"

这是在IE11开发人员栏中输入document.cookie的输出。

您会注意到PHPSESSID在那里两次。我想杀了它。

我尝试在JavaScript中运行它:

document.cookie = 'PHPSESSID=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';

在PHP中运行:

session_start();
setcookie('PHPSESSID', '', time()-3600); 
setcookie('PHPSESSID', '', time()-3600, '/'); 
session_unset();
session_destroy();

但似乎没有什么可以摆脱cookie。

我知道我可以通过浏览器手动删除cookie,但是现在有很多用户都在讨论会话,我需要一种方法来自动完成。

1 个答案:

答案 0 :(得分:0)

删除cookie时,必须指定cookie params,就像设置时一样。您可以使用session_get_cookie_params函数获取当前会话cookie的参数

$params = session_get_cookie_params();
setcookie(
    session_name(), '', time() - 86400, 
    $params['path'], 
    $params['domain'],
    $params['secure'],
    $params['httponly']
);

session_destroy();