饼干不会被删除正确
问题描述:
要检查什么饼干存在我使用这个文件(test.php的):饼干不会被删除正确
foreach ($_COOKIE as $key => $value) {
print $key . "=" . $value . "</br>";
}
我得到以下输出:
fbsr_{app id}={a bunch of chars}
(凡内的东西{ }是私有数据)
要删除我的所有会话我用这个:
session_start();
session_unset();
session_destroy();
这删除了我的饼干:
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($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);
}
是会话摧毁你打电话之前取消设置($ _ COOKIE [ 'PHPSESSID'])?此时,如果会话ID为空,那么cookie不能检索该ID,并且该cookie不会被取消设置,因为它没有被引用。如果是这种情况,我会在确认会话在cookie被取消设置之前被销毁之后将其放入答案表格中。 – 2012-01-06 22:17:30
解决了PHPSESSID cookie的问题,另一个仍然存在:/ – Richard 2012-01-06 22:33:47
您是否已将session_destroy()移动到“setcookie”语句下方? – 2012-01-06 22:36:18