我设法在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,但是现在有很多用户都在讨论会话,我需要一种方法来自动完成。
答案 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();