php thinkphp 設定session的有效時間
阿新 • • 發佈:2019-01-09
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秒