1
要檢查什麼餅乾存在我使用這個文件(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 [ '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