删除无法在PHP

时间:2017-07-11 18:44:48

标签: php cookies

这有点奇怪,但我设置了一个cookie:

setcookie('auth', 'ok', time() + 3600, "/");

结果:

Name:   auth
Content:    ok
Domain: --.com
Path:   /
Send for:   Any kind of connection
Accessible to script:   Yes
Created:    Tuesday, July 11, 2017 at 11:00:23 PM
Expires:    Wednesday, July 12, 2017 at 12:00:23 AM

它工作正常,但是当我想删除此cookie时:

setcookie('auth', 'ok', time() - 3600, "/");
unset($_COOKIE['auth']);

结果没有变化,cookie也没有被删除,我仍然在浏览器中找到了这个cookie。

Cookie在此网址中创建:

  

auth.php?行动=确认

并使用ajax调用函数:

  

模型/ auth.php

它应该在此网址中删除它:

  

auth.php?行动=注销

但它不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

删除cookie的一种简洁方法是清除$ _COOKIE值和浏览器cookie文件:

if (isset($_COOKIE['auth'])) {
  unset($_COOKIE['auth']);
  setcookie('auth', '', time() - 3600, '/'); // Empty value and old timestamp
}

答案 1 :(得分:0)

您很可能在销毁Cookie之前输出了一些数据。

尝试检查一下,在任何输出之前使用此代码:

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

使用此$sent = headers_sent($file, $line);,您可以查看在尝试销毁Cookie之前是否已输出某些数据。