1. 程式人生 > >thinkphp設定session無效的問題

thinkphp設定session無效的問題

thinkphp的session設定週期是無效的;

直接的影響就是無法保留使用者的登陸狀態;

用thinkphp開發的專案;關閉瀏覽器後用戶就退出了;

即便設定了session週期也沒作用;

這個bug存在很久了;但是thinkphp官網一直沒處理更新;

吐槽完畢;下面來解決這個bug;

首先需要在 /Thinkphp/Common/funtion.php 公告函式的第1213行新增如下內容;

如果不是在1213行;就搜尋gc_maxlifetime

1 2 3 4 5 // 1213行原始碼 if(isset($name['expire']))          
ini_set('session.gc_maxlifetime'$name['expire']); // 改成如下程式碼 if(isset($name['expire']))          ini_set('session.gc_maxlifetime'$name['expire']);ini_set('session.cookie_lifetime'$name['expire']);

原始碼:

白俊遙部落格

更改後的程式碼:

白俊遙部落格

然後在配置項/Application/Common/conf/config.php中新增如下程式碼

1 2 3 4 5 6 7 //***********************************SESSION設定**********************************
'SESSION_OPTIONS'         =>  array( 'name'                =>  'BJYSESSION',                    //設定session名 'expire'              =>  24*3600*15,                      //SESSION儲存15天 'use_trans_sid'       =>  1,                               //跨頁傳遞 'use_only_cookies'    =>  0,                               
//是否只開啟基於cookies的session的會話方式 ),

ok;大功告成;

//***********************************不怎麼華麗的分割線**********************************

後來還是不斷有親們的session週期失效;

特貼一份設定正確的專案連線;

可以嘗試下載bjyadmin到本地;然後在bjyadmin上測試;

如果bjyadmin的session也失效;那可能是本地環境有問題;

如果bjyadmin的session正常;而自己的專案session失效;

那就可以確認是自己專案的session配置有錯誤的地方;

照著bjyadmin抄配置即可;