我真的不知道問題在這裏。setcookie不刪除cookie
我有一個名爲「login.php」的腳本,完美地工作。這就是所謂的AJAX,如果它成功返回時,頁面刷新和用戶登錄,該Cookie設置頁面上
setcookie("main", $row[0], time() + 3600, "/")
然後我就被稱爲「logout.php」的腳本。它被稱爲相同的方式(AJAX,然後頁面刷新)。它只有兩行:
<?php
setcookie("main", "", time() - 3600, "/");
echo "Done";
?>
調用它形成頁面不起作用,所以我只是在瀏覽器中加載logout.php。輸出「完成」,但在Chrome瀏覽器中檢查我的Cookie後,顯示cookie仍設置爲「1」($ row [0]),並在login.php中設置的時間到期。
login.php和logout.php都在同一個文件夾中,即根目錄,與其他所有文件夾相同。
此前,這是工作,但我所做的唯一更改是使網站上的標題欄自己的文件(仍在根目錄中),並採取註銷按鈕的JavaScript功能,這是隻需一個AJAX調用和一些jQuery懸停效果,並將其創建爲自己的腳本文件,該文件位於_js文件夾中。但我根本沒有更改logout.php,所以當我直接導航到它時它應該仍然有效,對吧?我的setcookie命令有什麼問題,或者其他問題可能導致它?
編輯:我試圖設置它在100秒而不是-3600過期,然後嘗試更改它的名稱,以便我可以將其識別爲完全單獨的cookie。他們都沒有出現。根本沒有設置cookie。
編輯2:我恢復到最後一次提交,並且一切都再次工作。我不知道爲什麼通過創建一些新文件來重新組織我的網站(logout.php根本沒有改變)會使某個腳本無法創建cookie。
你確定你調用在同一個域?也許你設置www.domain.com Cookie,並要刪除它在domain.com上? – 2012-04-17 16:07:26
我把它們都設置在「/」上,所以它應該是同樣的東西,對吧?它們都在同一個文件夾中 – 2012-04-17 16:09:36
不,它是路徑,域可能不同。在www.domain.com上設置cookie比它無法從domain.com訪問,儘管他們是相同的域名,但理論上不是。因此,如果你在www.domain.com/login.php中設置域名,比註銷php腳本必須從www.domain.com/logout.php調用而不是domain.com/logout.php – 2012-04-17 16:10:30