我有这个代码,当登录检查正常时设置:
if((isset($_POST["remember_me"]))&&($_POST["remember_me"]==1))
{
setcookie('email', $username, time()+3600);
setcookie('pass', $pass, time()+3600);
}
现在,当我点击注销链接(logout.php) 我这样做了:
<?php session_start();
setcookie("email", '', 1, "");
setcookie("pass", '', 1, "");
$_SESSION["login"] = "";
header("location: aforum/enter_furom.php");
?>
我没有使用销毁会话,因为我不想销毁所有会话.... 现在破坏会话工作正常...但是当我尝试取消设置cookie时,浏览器(所有浏览器:explorer,chrome,firefox,mozilla)都会给我一个错误,说新的cookie无法设置 ...有什么帮助来取消上述cookie?
答案 0 :(得分:12)
使用超全球_COOKIE
变量:
unset($_COOKIE['mycookiename']);
或使用仅 Cookie名称
致电setcookie()
setcookie('mycookiename');
要在退出时使用重置Cookie:
setcookie('pass');
setcookie('email');
登录检查:
if(
isset($_POST["remember_me"]) &&
$_POST["remember_me"]==1 &&
$_COOKIE['pass'] != NULL &&
$_COOKIE['email'] != NULL &&
)
答案 1 :(得分:7)
setcookie('cookiename', '', time()-3600);
答案 2 :(得分:2)
在浏览器中检查cookie运行的目录。并通过指定cookie具有的路径来取消它。如示例中的cookie目录是/aforum/
setcookie ("email","",time()-1,"/aforum/","http:// yourdomain.com");
答案 3 :(得分:1)
要在PHP中取消设置Cookie,只需将其到期时间设置为过去的时间。例如:
$expire = time() - 300;
setcookie("email", '', $expire);
setcookie("pass", '', $expire);
答案 4 :(得分:1)
至少在Chrome和IE8 +中,以下内容会从浏览器中删除Cookie。在重新加载页面之前,它不会反映在$_COOKIE
数组中。
setcookie('cookiename','',0,'/',$cookieDomain)
你可以在这里省略一些参数,但重要的是你要设置一个空字符串,并从浏览器中删除cookie。
答案 5 :(得分:0)
您需要将过期时间设置为过去,例如
setcookie('email', '', time()-3600);
此外,您应该为Absolute URI
使用header('Location:' ....)
。
答案 6 :(得分:0)
试试这个
setcookie ("email", "", time() - 3600);
setcookie ("pass", "", time() - 3600);
答案 7 :(得分:0)
只需将cookie的值设置为false
即可取消
setcookie('cookiename', false);
这是最简单的方法。