我有一個網站,我一直在我的客戶站點根目錄的子文件夾中進行測試。 我在測試過程中沒有登錄問題,但後來我將新站點文件從子目錄移到主站點根目錄,現在我幾乎每個頁面在安全區域刷新後都會丟失登錄狀態。將相關文件移動到站點根目錄後基於會話登錄的問題
我正在運行基於$ _session的登錄系統,該系統在每次頁面加載時刷新會話ID,並將比較值存儲在MySQL數據庫中。
有沒有人有什麼可能會導致此問題的建議?
我有一個網站,我一直在我的客戶站點根目錄的子文件夾中進行測試。 我在測試過程中沒有登錄問題,但後來我將新站點文件從子目錄移到主站點根目錄,現在我幾乎每個頁面在安全區域刷新後都會丟失登錄狀態。將相關文件移動到站點根目錄後基於會話登錄的問題
我正在運行基於$ _session的登錄系統,該系統在每次頁面加載時刷新會話ID,並將比較值存儲在MySQL數據庫中。
有沒有人有什麼可能會導致此問題的建議?
Cookie通常是路徑相關的。您以前的基於子目錄的網站可能只會爲該子目錄設置Cookie(將瀏覽器綁定到用戶)。
解決此問題的一種方法是在舊的子目錄上放置一個重定向頁面,該頁面將cookie添加到「/」,然後重定向到根目錄上的新站點。
如果更改會話ID,則會丟失先前會話中存儲的所有數據。您必須在每次會話開始命令後設置會話名稱
<?php
session_name('AnySessName');
?>
或使用其他機制來存儲變量跨會話。
krico正確地暗示cookie路徑可能是原因(但提出的解決方案似乎有點愚蠢),但您已經說過並非如此。
檢查,看看究竟什麼餅乾(名稱,路徑,到期,旗)正在建立,並通過使用iehttpheaders(MSIE)LiveHeaders(火狐),或使用網絡嗅探器Wireshark的一樣返回。然後再問這個問題,提供你發現的細節。
C.
按照http://stackoverflow.com/questions/2965878/intermitant-sessions中的要求 – YsoL8 2010-06-03 12:30:36
DEBUUUUUUUUG it!首先進行調試,然後雙方都要求和**回答**! – 2010-06-03 12:12:49