为什么我不能用php删除cookie?
我使用此代码
<?PHP
session_start();
include("connect.php");
setcookie("rel", "", time() - (86400 * 90) , "/","", 1);
?>
这段代码
<?PHP
session_start();
include("connect.php");
setcookie("rel", "", time()-3600);
?>
但cookie仍然存在。
我该怎么办?
答案 0 :(得分:1)
你必须杀了它......
为了完全杀死会话,喜欢将用户注销掉, 会话ID也必须取消设置。如果使用cookie来传播 会话ID(默认行为),然后会话cookie必须是 删除。 setcookie()可以用于此。
请查看较旧的问题: Best way to completely destroy a session - even if the browser is not closed
答案 1 :(得分:1)
您正在使用以下函数设置cookie:
setcookie("rel", "", time() - (86400 * 90) , "/", "", 1);
第四个参数("/"
)描述了cookie的设置路径。
可在其上使用cookie的服务器上的路径。如果设置为&#39; /&#39;,则Cookie将在整个域中可用。如果设置为&#39; / foo /&#39;,则cookie只能在/ foo /目录和所有子目录中使用,例如/ foo / bar / of domain。默认值是设置cookie的当前目录。
必须使用与设置相同的参数删除Cookie。如果value参数为空字符串或FALSE,并且所有其他参数与先前对setcookie的调用匹配,则将从远程客户端删除具有指定名称的cookie。这是通过将值设置为&#39;已删除&#39;到期时间为一年。
如果要删除cookie,则必须使用正确的路径删除它,在您的情况"/"
中,您可能希望使用以下函数调用来使cookie过期:
setcookie("rel", "", time() - 3600, "/");
答案 2 :(得分:0)
使用此代码清除您想要的Cookie:
export default class test {
static showMessage(){
alert('Some text');
}
}
这样就可以了解
答案 3 :(得分:0)
=&GT;试试这个代码..
setcookie("rel", "", time()-3600);
OR
if (isset($_COOKIE['rel'])) {
unset($_COOKIE['rel']);
setcookie('rel', '', time() - 3600, '/'); // empty value and old timestamp
}
答案 4 :(得分:0)
没有办法直接删除cookie。只需使用过去有效期的setcookie,即可在浏览器中触发删除机制。
$cookie_name = 'rel';
unset($_COOKIE[$cookie_name]);
$res = setcookie($cookie_name, '', time() - 3600);