有点奇怪,但我在饼干里放了:
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在以下URL中创建:
auth.php?action=confirm
调用一个ajax
的函数:
model/auth.php
它应该在此URL中删除它:
auth.php?action=logout
但它不起作用。你知道吗?
3条答案
按热度按时间zy1mlcev1#
删除cookie的一个简单方法是同时清除$_COOKIE值和浏览器cookie文件:
3lxsmp7m2#
很可能您在销毁cookie之前正在输出一些数据。
尝试检查这一点,并在任何输出之前使用以下代码:
使用这个
$sent = headers_sent($file, $line);
,您可以查看在您尝试销毁cookie之前是否有一些数据已经输出。2hh7jdfx3#
您必须检查路径是否也正确。您可以通过打开microsoft edge -〉设置-〉cookie和站点权限-〉查看所有cookie-〉搜索您站点的域名-〉单击下拉菜单并查找cookie名称-〉查看信息来完成此操作。在信息下您会找到路径。路径不总是“/”
然后用你在那里找到的路径替换“/”。例如,如果路径是“/abc”
你也许可以在其他浏览器上找到cookie信息,但我只在microsoft edge上找到了如何做到这一点。