Cookie无法正确删除

  • 本文关键字:删除 Cookie php cookies
  • 更新时间 :
  • 英文 :


要检查存在哪些cookie,我使用以下文件(test.php):

foreach ($_COOKIE as $key => $value) {
    print $key . "=" . $value . "</br>";
}

我得到以下输出:

fbsr_{app id}={a bunch of chars}

(其中{}中的内容是私有数据)

要删除我的所有会话,我使用这个:

session_start();
session_unset();
session_destroy();

这是为了删除我的cookie:

setcookie('fbsr_' . $app_id, $_COOKIE['fbsr_' . $app_id], time() - 3600);
setcookie('PHPSESSID', $_COOKIE['PHPSESSID'], time() - 3600);
unset($_COOKIE['fbsr_' . $app_id]);   
unset($_COOKIE['PHPSESSID']);

问题是,当我运行代码来检查我的cookie是否已经失效时,它们没有,并且我得到了相同的输出:/

为什么我的cookie没有被删除?我的代码在哪里坏了吗?尝试了几个浏览器。。。

编辑:看起来cookie毕竟被破坏了,但测试功能仍然打印cookie输出?!?!我很困惑?!

(注销文件)

if($action == 'logout'){
        $app_id = $facebook->getAppID();
        if (isset($_COOKIE['fbsr_' . $app_id])) {
            echo 'goes here<br>';
            setcookie('fbsr_' . $app_id, $_COOKIE['fbsr_' . $app_id], time() - 3600, "/");
            setcookie('PHPSESSID', $_COOKIE['PHPSESSID'], time() - 3600, "/");
            unset($_COOKIE['fbsr_' . $app_id]);   
            unset($_COOKIE['PHPSESSID']);
        }
        if (isset($_COOKIE['fbsr_' . $app_id])) {
            echo 'is still sett<br>';
        }
        session_start();
        session_unset();
        session_destroy();
        $result = array("success" => "true");
    }

它从不打印is still sett,这意味着cookie被删除!

谢谢:)

这是我用来删除cookie 的方法

if (isset($_COOKIE['cookieName'])) {
     setcookie('cookieName', '', time()-1);
}

最新更新