tp5設置session有效期


\thinkphp\helper.php

if
(!function_exists('session')) { /** * Session管理 * @param string|array $name session名稱,如果為數組表示進行session設置 * @param mixed $value session值 * @param string $prefix 前綴 * @return mixed */ function session($name, $value = '', $prefix = null) { if (is_array($name)) { // 初始化 Session::init($name); } elseif (is_null($name)) { // 清除 Session::clear('' === $value ? null : $value); } elseif ('' === $value) { // 判斷或獲取 return 0 === strpos($name, '?') ? Session::has(substr($name, 1), $prefix) : Session::get($name, $prefix); } elseif (is_null($value)) { // 刪除 return Session::delete($name, $prefix); } else { // 設置 return Session::set($name, $value, $prefix); } } }

\thinkphp\library\think\Session.php


/*
* * session設置 * @param string $name session名稱 * @param mixed $value session值 * @param string|null $prefix 作用域(前綴) * @return void */ public static function set($name, $value = '', $prefix = null) { empty(self::$init) && self::boot(); $prefix = !is_null($prefix) ? $prefix : self::$prefix; if (strpos($name, '.')) { // 二維數組賦值 list($name1, $name2) = explode('.', $name); if ($prefix) { $_SESSION[$prefix][$name1][$name2] = $value; } else { $_SESSION[$name1][$name2] = $value; } } elseif ($prefix) { $_SESSION[$prefix][$name] = $value; } else { $_SESSION[$name] = $value; } }

通過查看thinkphp5自帶的代碼發現沒有設置session過期時間的地方。

 

  只是在\thinkphp\library\think\Session.php有

        if (isset($config['expire'])) {
            ini_set('session.gc_maxlifetime', $config['expire']);
            ini_set('session.cookie_lifetime', $config['expire']);
        }

設置過期時間。

session.gc_maxlifetime:session的有效生存時間,過了這個時間session將進入銷毀隊列。

session.cookie_lifetime:值為0代表關閉瀏覽器,保存在客戶端的sessionid將立即失效。

只有在config.php文件里面設置全局session過期時間。

    'session'                => [
        'id'             => '',
        // SESSION_ID的提交變量,解決flash上傳跨域
        'var_session_id' => '',
        // SESSION 前綴
        'prefix'         => 'WSTMART_',
        // 驅動方式 支持redis memcache memcached
        'type'           => '',
        // 是否自動開啟 SESSION
        'auto_start'     => true,
     //設置過期時間 'expire' => 1, ],

   或者直接通過session創建時間來判斷,如果時間超過了規定時間就將session清空


免責聲明!

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



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