問候。我在PHP中設置了一個cookie,但它不是用標頭髮送的
我試圖在瀏覽器cookie中保存用戶的會話ID。我一遍又一遍地進行了測試,並且在頭部之前發送的空白或任何其他信息沒有任何問題。
我的應用程序有一個入口點(index.php)並處理查詢字符串來調用控制器/ etc。當我到我的主頁面時,沒有看到cookie,所以它顯示用戶登錄頁面。當我通過XDebug跟蹤這一點時,一旦我點擊提交,哪些POST回到index.php。當此POST回來時,來自先前登錄的cookie將被髮送到頁面!但是,由於它試圖處理POST信息,我的腳本再次設置cookie。當它重定向回主頁(即沒有POST或其他參數的index.php)時,不會發送cookie。
我已經調試過,看遍了整個地方,無法弄清楚,想知道如果有人有任何明智的想法。
注意: 我在setcookie()中設置路徑爲'/'。另外,我使用mod_rewrite和.htaccess來製作SEO友好的URL。不過,我沒有嘗試過它,它似乎並不重要...
代碼段:
這樣寫:
setcookie(self::SESSION_COOKIE, $this->session_id, time()+60*60*24*30, '/', 'localhost');
要訪問:
$_COOKIE[self::SESSION_COOKIE];
感謝您的幫助 -
你確定你'輸出任何東西之前會調用'setcookie()函數?如果您已經發送了任何內容,那麼標題已發送,您不能再設置cookie。在這種情況下你應該得到一個警告。 – 2013-12-03 19:17:29