在我的網站上有評論框。爲什麼php不能刪除JavaScript設置的cookie?
發佈評論是由JavaScript處理,JS數據發佈到PHP腳本和PHP確實只有當用戶登錄時,如果用戶的心不是在那麼PHP給not_loggedin響應接收它的js後登錄該數據庫相關的東西,並顯示確認顯示了自舉彈出框與鏈接到登錄頁面。
因此,如果用戶沒有登錄,那麼javascript會將輸入的註釋存儲在cookie中,以便在登錄後用戶不必重新輸入註釋。像這樣
document.cookie = id + "=" + input_text + "; ";
,並在註釋文本域登錄後通過讀取它具有存儲註釋文本餅乾填充..
一切都交給這是工作完美,但是在PHP中插入評論後,我很試圖刪除的cookie這樣,
setcookie($id, "", time()-3600);
print_r($_COOKIE);
exit('<p class="bg-info">Thank you! Your comment has been posted.</p>');
,但它仍然不刪除的cookie,當我重新加載頁面,註釋textarea的盒子我填充是從餅乾看了一遍先前enetered評論,
我該如何解決這個問題?
我甚至試過顯示由JS存儲在PHP中的cookie,艾克這個
//insert comment in db
//setcookie($id, "", time()-3600);
print_r($_COOKIE);
exit('<p class="bg-info">Thank you! Your comment has been posted.</p>');
但它不顯示這是由JS設置cookie,它顯示PHPSESSID的cookie發佈評論後,
Array
(
[PHPSESSID] => c5rc6c8ggg24edg1v2o8hebb20
)
我不想刪除PHPSESSID cookie。, 我在使用js的頁面上顯示此內容。 as post_comment.php是同一臺服務器上另一個目錄中的另一個文件。
我做錯了什麼?
簡而言之, js設置cookie和php應該刪除cookie。
----------
更新1:
而在JS這樣
document.cookie = id + "=" + input_text + "; path=/";
和之後設置的Cookie我試圖設定路徑張貼cookie。,現在我明白了,
Array
(
[PHPSESSID] => c5rc6c8ggg24edg1v2o8hebb20
[4778] => this is comment
)
我的PHP代碼是這樣的,
//insert comment is db
setcookie($id, "", time()-3600);
printr($_COOKIE);
exit('<p class="bg-info">Thank you! Your comment has been posted.</p>');
但cookie是仍然存在。
更新2: 這是很奇怪的,
,如果我嘗試設置在PHP中同名的cookie,多了一個餅乾被創建。 我的php代碼。
setcookie($id, "sdf", time()+36000);
printr($_COOKIE);
exit('<p class="bg-info">Thank you! Your comment has been posted.</p>');
現在,當我檢查broswers cookie管理器,我看到2塊餅乾具有相同的名稱,
但兩者具有不同的內容,這是設置USNG的javascript有用戶enetered註釋和一個我們使用php設置的另一個cookie是內容「sdf」。
我不知道這是怎麼可能有2個cookie完全相同的名稱。 ,
任何線索?
在評論存儲之後,您仍然可以在js端看到cookie嗎? – andrex 2014-09-22 04:41:55
@andrex我沒有得到它,你的意思是,我重新加載頁面後,我填充了cookie值的評論框,甚至cookie都發布了。 – AMB 2014-09-22 04:44:21
看到這個http://stackoverflow.com/questions/10593013/delete-cookie-by-name – gabereal 2014-09-22 04:46:00