我發現在我的簡單Web應用程序中,如果您將頁面單獨保留五分鐘以上,然後重新載入頁面,則調用session_id()將在第二次返回不同的值。用戶保持登錄狀態,所以會話數據被移動到新的ID,但我根據會話ID跟蹤MySQL數據庫中的購物車項目,當ID改變時,與購物車項目的關聯就會丟失。正在自動重新生成PHP會話ID
在我的代碼沒有在任何地方我曾經打電話session_regenerate_id()
幫助!
我發現在我的簡單Web應用程序中,如果您將頁面單獨保留五分鐘以上,然後重新載入頁面,則調用session_id()將在第二次返回不同的值。用戶保持登錄狀態,所以會話數據被移動到新的ID,但我根據會話ID跟蹤MySQL數據庫中的購物車項目,當ID改變時,與購物車項目的關聯就會丟失。正在自動重新生成PHP會話ID
在我的代碼沒有在任何地方我曾經打電話session_regenerate_id()
幫助!
你可能想檢查你的代碼,看看你是否使用帶有參數的session_id(),因爲這也會改變會話ID。在沒有看到代碼的情況下,很難明確修復或知道發生了什麼問題。
一些事情你可能要檢查,如果遇到這樣的情況,並且您使用會話名稱():
警告! 會話名稱不能只包含數字,必須至少存在一個字母。
會話名稱( '等等等等')
這兩種情況都會強制每次生成新的會話標識。
你有什麼樣的託管?共享服務器? – 2012-07-23 16:22:03
我假設你正在調用'session_start()' - 也就是在頁面加載之前。 – 2012-07-23 16:22:43
你應該看看你的會話過期時間'session.gc_maxlifetime'的值。它可能太短。 – 2012-07-23 16:22:58