【TP3.2.*】解決session過期不失效 和 設置不成功問題
阿新 • • 發佈:2018-04-29
lifetime runtime isset 清除 不成功 use 問題 func true
1、背景:本來我想設置session有效期1800秒即30分鐘 失效的,可是實際使用TP3.2.0的時候發現,登錄了幾天用戶竟然沒有失效,一直都可以登錄。
2、解決:
2.1 在config.php中設置SESSION_OPTIONS數組
/* SESSION全局配置 */ ‘SESSION_OPTIONS‘ => array( ‘path‘ => RUNTIME_PATH . ‘Temp/‘, ‘use_cookies‘ => 1, //是否在客戶端用 cookie 來存放會話 ID,1是開啟 ‘use_trans_sid‘ => true, //跨頁傳遞 ‘expire‘ => 1800, ),
2.2 在ThinkPHP/common/functions.php中1074修改(或全局搜索【gc_maxlifetime】):
將
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‘]);}
保存,清除瀏覽器和服務器RunTime/Temp 下緩存,再次登錄頁面,等待過期即可。(測試時候可以設置expire=10)
【TP3.2.*】解決session過期不失效 和 設置不成功問題