解決thinkphp設置session周期無效的問題


thinkphp的session設置周期是無效的;
直接的影響就是無法保留用戶的登陸狀態;
用thinkphp開發的項目;
關閉瀏覽器后用戶就退出了;
即便設置了session周期也沒作用;
這個bug存在很久了;
但是thinkphp官網一直沒處理更新;
吐槽完畢;下面來解決這個bug;
首先需要在 /Thinkphp/Common/funtion.php 公告函數的第1213行添加如下內容;
如果不是在1213行;就搜索gc_maxlifetime

// 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']);
PHP

原代碼:
白俊遙博客
更改后的代碼:
白俊遙博客
然后在配置項/Application/Common/conf/config.php中添加如下代碼

//***********************************SESSION設置********************************** 'SESSION_OPTIONS' => array( 'name' => 'BJYSESSION', //設置session名 'expire' => 24*3600*15, //SESSION保存15天 'use_trans_sid' => 1, //跨頁傳遞 'use_only_cookies' => 0, //是否只開啟基於cookies的session的會話方式 ),
PHP

ok;大功告成;
//***********************************不怎么華麗的分割線**********************************
后來還是不斷有親們的session周期失效;
特貼一份設置正確的項目連接;
bjyadmin:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin
可以嘗試下載bjyadmin到本地;
然后在bjyadmin上測試;
如果bjyadmin的session也失效;
那可能是本地環境有問題;
如果bjyadmin的session正常;
而自己的項目session失效;
那就可以確認是自己項目的session配置有錯誤的地方;
照着bjyadmin抄配置即可;
//***********************************又一個不怎么華麗的分割線******************************
thinkphp官網上最新的3.2.3已經修復此問題;
新開的項目;
直接下載官網最新版本即可;
已經存在的老版本的項目;
可以按本文章處理;

 

本文為白俊遙原創文章,轉載無需和我聯系,但請注明來自白俊遙博客http://baijunyao.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM