1. 程式人生 > >php thinkphp 設定session的有效時間

php thinkphp 設定session的有效時間

thinkphp 設定session的有效時間是根據配置

'SESSION_EXPIRE'        =>  7200,   //有效時間
'SESSION_OPTIONS'=>array(
        'expire'    =>  7200    //有效時間
)

今天在配置的時候發現了一個很大的坑
我明明將上述配置設定成了如上的7200(也就是說session的有效時間是7200秒),但是我通過瀏覽器對伺服器傳送request 伺服器給我響應的response header中 Set-Cookie 頭部資訊顯示的是max-age=1440,1440是我們php.ini環境配置的時間,也就是說我的7200並沒有生效,然後在網上查了大量的資料,有人說是thinkphp3.2本身session機制有問題,然後我又一步一步的讀原始碼,並做斷層測試,發現tp3.2 session機制本身並沒有問題。而是在C函式讀取配置的時候沒有將SESSION_EXPIRE的值讀出來,我就納悶兒了。怎麼讀不出來。然後看了下入口檔案的模式,尼瑪,老子關閉了除錯模式。趕忙將Runtime資料夾刪除了,又測試了一次,response header 中Set-Cookie 引數的max-age 終於變成了7200。

以上是告訴大家一個TP框架的經驗。

php怎麼更改session的有效時間
方法一:直接在配置檔案php.ini 中修改session的有效時間

session.gc_maxlifetime = 1440

session.gc_maxlifetime 就是session的有效時間,設定後不僅會在給客戶端響應的時候會告訴客戶端session的有效時間,本地儲存的時候也會設定該session的儲存時間,例子裡我寫的是php預設配置的session有效時間。

方法二:ini_set() 函式設定session的有效時間

ini_set('session.gc_maxlifetime'
,1440)
;//設定session的有效時間是1440秒