(转载)【TP5.0】设置session有效时长+修改默认存储路径
生活随笔
收集整理的這篇文章主要介紹了
(转载)【TP5.0】设置session有效时长+修改默认存储路径
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//查看默認session存儲路徑:print_r(session_save_path()); \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;}}
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' => 'cmf5',// 驅動方式 支持redis memcache memcached'type' => '',// 是否自動開啟 SESSION'auto_start' => true,//是否使用cookie'use_cookies' => true,//設置過期時間 單位秒'path' => TEMP_PATH,//表示session保存在自己網站根目錄中的runtime/temp/目錄中'expire' => 3600*24*3, //設置該值后,請務必進行線上、本地緩存刪除、ctrl+F5強制刷新瀏覽器],?
總結
以上是生活随笔為你收集整理的(转载)【TP5.0】设置session有效时长+修改默认存储路径的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python selenium系列(六)
- 下一篇: Qt简单的解析Json数据例子(一)