奇怪的問題。Cookie未刪除
這是index.php文件:
session_start();
print_r($_COOKIE);
print_r($_SESSION);
這是logout.php:
session_destroy();
$_COOKIE['key'] = "";
$_COOKIE['usr_email'] = "";
setcookie("key", "", time() - 3600);
setcookie("usr_email", "", time() - 3600);
header("Location: http://www.site.net/index.php");
當我打開logout.php,被重定向到index.php後我得到:
Array
(
[fc] => fcVal=6927578914025605120
[PHPSESSID] => na015ipu3s69hhj00sgd0h1es6
)
Array
(
[key] => cc2bffe0c1e36bc5790f5b78b11e5f50
[usr_email] => [email protected]
)
因爲我在加載index.php時生成它們,所以會話沒問題,但cookie仍然存在?
注意
我有一些的index.php更多的代碼,決定是否登錄表單中瀰漫,並開始對用戶進行認證,如果用戶名/密碼是正確的它設置兩屆瓦爾和兩個餅乾vars(usr_email和key)。
目前,我在登錄表單之後,因此我有Cookie和會話變量,並且由於Cookie未被刪除,因此我禁用了索引頁上的其他任何PHP代碼會自動登錄。因此,目前我已經通過身份驗證,然後從索引頁面註釋掉了上面沒有提到的其他內容。
也與此有關 我這是怎麼設置的Cookie當一個用戶進行身份驗證:
setcookie("key", $cookie['key'], time() + 36000);
setcookie("usr_email", $cookie['usr_email'], time() + 36000);
PHP版本:PHP 5.3.6-13
最後編輯
正如Josh在評論中寫道的,我將cookie打印與會話混淆,我無法刪除會話變量而不是cookie變量。
你試過'退出'腳本後頭:位置? – TimWolla 2012-02-06 19:31:38
@TimWolla - 剛試過,不會改變任何東西。 – 2012-02-06 19:33:10
請勿將相對時間用於您的Cookie刪除時間戳。這假定用戶的時鐘是(相對)準確的。設置一個固定的「1月1日19:00 00:00:00格林尼治標準時間」類型的時間戳,以便即使是完全損壞時鐘的機器應該最有可能兌現它。 – 2012-02-06 19:33:15