2015-12-18 56 views
2

基本會話不起作用。會話正在生成並存儲在服務器的正確文件夾中,但不像通常的PHPSESSID cookie那樣存儲在瀏覽器中。 phpinfo()顯示正在發送Set-Cookie頭文件,但瀏覽器得到的響應中缺少Set-Cookie頭文件。請檢查下面的截圖:Set-Cookie出現在標題響應中但在瀏覽器中丟失

browser screenshot showing no Set-Cookie in response

phpinfo screenshot showing Set-Cookie header

的Set-Cookie標頭在瀏覽器中獲得響應丟失:

出現在從服務器端設置Cookie頭另一個信息是,如果我使用JavaScript來設置cookie,那麼它就會起作用,並顯示在瀏覽器的開發者工具中。

關於會話的一切都沒問題,只是它試圖在瀏覽器上設置的cookie似乎沒有設置。

+0

你確定你之前沒有發送任何東西嗎?嘗試將'session_start()'移動到第一行代碼。 – bansi

+0

@bansi是的,它是在頂部..但無論如何,它與cookies有關。即使響應存在於phpinfo()輸出 – AcidX

回答

4

接聽原因並修復,因爲它可以幫助別人的未來,節省大量的時間:在以前由其他人建立了一個網站發生

此錯誤。這個錯誤看起來很不尋常,我認爲這個問題很可能與Apache有關。我刪除了Apache,並重新安裝到沒有效果。然後我安裝了Nginx,看看問題出在Web服務器軟件還是服務器本身。我發現Session在Nginx中工作正常。所以這個問題肯定在Apache的某個地方。

當我檢查文件發現在.htaccess文件下面的某處下面Cookie未設置

Header unset Cookie 
Header unset Set-Cookie 

從來沒有想過有人會把這個!但無論如何,刪除上述固定的問題。

+0

中,甚至setcookie()函數也沒有在瀏覽器中設置任何cookie。 「有趣」(閱讀'沮喪')試圖找出發生的事情。 ; - / –

相關問題