当我想要删除Cookie时,我会尝试
unset($_COOKIE['hello']);
我在firefox的cookie浏览器中看到cookie仍然存在。我怎么才能真正去掉饼干呢?
当我想要删除Cookie时,我会尝试
unset($_COOKIE['hello']);
我在firefox的cookie浏览器中看到cookie仍然存在。我怎么才能真正去掉饼干呢?
当前回答
我在php中使用这个,它工作得很好。
function cookie_unset()
{
setcookie("cookie_name", "", time() - 3600, '/');
unset ($_COOKIE['cookie_name']);
//done
}
其他回答
您可以根据cookie值设置会话变量
session_start();
if(isset($_COOKIE['loggedin']) && ($_COOKIE['loggedin'] == "true") ){
$_SESSION['loggedin'] = "true";
}
echo ($_SESSION['loggedin'] == "true" ? "You are logged in" : "Please Login to continue");
要删除所有cookie,您可以这样写:
foreach ($_COOKIE as $key => $value) {
unset($value);
setcookie($key, '', time() - 3600);
}
我在php中使用这个,它工作得很好。
function cookie_unset()
{
setcookie("cookie_name", "", time() - 3600, '/');
unset ($_COOKIE['cookie_name']);
//done
}
这是如何PHP v7 setcookie()代码工作时,你这样做:
<?php
setcookie('user_id','');
setcookie('session','');
?>
从tcpdump在端口80上嗅探时的输出,服务器向客户端(浏览器)发送以下HTTP报头:
Set-Cookie: user_id=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0
Set-Cookie: session=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0
观察以下请求中的数据包,浏览器不再在报头中发送这些cookie
当您为时间输入0时,您的意思是“现在”(从现在开始+0实际上是现在),浏览器会删除cookie。
setcookie("key", NULL, 0, "/");
我在chrome浏览器中检查了它,给我:
Name: key
Content: Deleted
Created: Sunday, November 18, 2018 at 2:33:14 PM
Expires: Sunday, November 18, 2018 at 2:33:14 PM