tp5设置session有效期

本文详细介绍了ThinkPHP框架中Session的管理方式,包括初始化、清除、获取和设置等操作,并探讨了如何设置Session过期时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

\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清空

转载于:https://www.cnblogs.com/mnhy/p/7904582.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值