当我想要删除Cookie时,我会尝试
unset($_COOKIE['hello']);
我在firefox的cookie浏览器中看到cookie仍然存在。我怎么才能真正去掉饼干呢?
当我想要删除Cookie时,我会尝试
unset($_COOKIE['hello']);
我在firefox的cookie浏览器中看到cookie仍然存在。我怎么才能真正去掉饼干呢?
当前回答
$cookie_name = "my cookie";
$cookie_value = "my value";
$cookie_new_value = "my new value";
// Create a cookie,
setcookie($cookie_name, $cookie_value , time() + (86400 * 30), "/"); //86400 = 24 hours in seconds
// Get value in a cookie,
$cookie_value = $_COOKIE[$cookie_name];
// Update a cookie,
setcookie($cookie_name, $cookie_new_value , time() + (86400 * 30), "/");
// Delete a cookie,
setcookie($cookie_name, '' , time() - 3600, "/"); // time() - 3600 means, set the cookie expiration date to the past hour.
其他回答
如果您将cookie设置为过去过期时间,浏览器将删除它。参见setcookie() delete example at php.net
您可以根据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,但由于$_COOKIE变量在每个请求中都被刷新,因此它只会在下一次页面请求中返回。
要真正摆脱cookie,请将过期日期设置为过去:
// set the expiration date to one hour ago
setcookie("hello", "", time()-3600);
很简单!
setcookie("cookiename", "cookievalue", 1);
你可以简单地使用这个自定义函数:
function unset_cookie($cookie_name) {
if (isset($_COOKIE[$cookie_name])) {
unset($_COOKIE[$cookie_name]);
setcookie($cookie_name, null, -1);
} else { return false; }
}
如果您想删除$_COOKIE['user_account']。 只使用:
unset_cookie('user_account');