2011-05-31 114 views
1

我知道會話是服務器端,所以即使瀏覽器關閉,也可以保存會話嗎?臨時存儲會話

例如保存會話一天。

請不要提示「cookies」,在這種情況下必須執行會話。

感謝

+5

會話通常使用餅乾,所以你的問題是自動關於餅乾 – 2011-05-31 15:04:57

+0

好吧,我知道,但你明白我在說什麼:) – user773961 2011-05-31 15:05:38

+0

序列化會話並將其保存在一個文件 – 2011-05-31 15:05:48

回答

1
php_value session.gc_maxlifetime 86400 

您可以設置上述在.htaccess或在php.ini

修改的session.gc_maxlifetime

這定義了在垃圾收集之前PHP會爲服務器上的用戶創建一個會話文件多長時間(上例將允許服務器維護會話持續1天),但會話通常依賴會話ID cookie,因此如果瀏覽器被重置或清除cookie,用戶將不會重新連接到他們的Web會話(您實際上正在設置要使用的會話ID cookie會話在大多數情況下,即使你沒有意識到。)

1

你可以創建一個數據庫,並在那裏存儲會話,並在客戶端存儲$ _SESSION ['id']這是會話的ID在數據庫。但是,如果您必須在會話中存儲越來越多的變量,這將成爲頭痛的問題。

1

就像Gumbo說的那樣,把它傳遞給URL。但我想如何解決這個問題,並不是通過Url傳遞SESSION_ID,而是將其作爲散列或編碼數據。

然後每當此用戶來到您的頁面。如果這個散列/編碼數據仍然在有效時間範圍內,並且這個「匿名」用戶對這個區域有權限,你可以檢查你的標題。

下行:如果該用戶繞過這個環節,任何人都可以訪問數據

優點:非常便攜,且易於實現


商店SESSION_ID在數據庫綁定到用戶IP。每當這個用戶在登錄後,通過與session_id

下行設置SESSION_ID啓動會話:很多工作,如果ISP改變他們的用戶生成的IP規則,這將不起作用

優點:即使他擦除SESSION_ID的cookie,你將能夠繼續會話

+0

此外,我正在考慮您正在設置會話最大生命週期(如其他用戶所建議的)。由於這只是對技術的「良好使用」,以及有效的域名等 – Dudemullet 2011-05-31 15:50:07

0

有很多方法可以做到這一點,但beign工匠你可以:

做出的腳本保存EA爲用戶在文件中,CH會議

OR

去php.ini並改變會話壽命

OR

使用session_set_save_handler功能的詳細信息here