取消设置饼干php

时间:2012-09-19 09:16:55

标签: php cookies

我有这个代码,当登录检查正常时设置:

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?

8 个答案:

答案 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);

这是最简单的方法。