要检查存在哪些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);
}