【问题标题】:Yii custom session timeoutYii 自定义会话超时
【发布时间】:2015-07-20 16:35:30
【问题描述】:

我想为管理员创建一个界面来更改我的应用程序中的会话超时。超时值将保存在数据库中。

更改会话超时值后我会这样做:

$duration = (int) $this->session_duration;
Yii::app()->session->setTimeout($duration);
Yii::app()->session->setCookieParams(array('lifetime' => $duration));

然后回显它的值,一切看起来都很好,直到我刷新页面,然后我得到旧的会话超时值,以及 cookie 生命周期。

另外,Yii 中放置会话超时验证的最佳位置是什么

if (time() - Yii::app()->session->get('LAST_ACTIVITY', 0) > Yii::app()->sesstings['session_timeout']) {
    Yii::app()->session->destroy();
}
Yii::app()->session->get('LAST_ACTIVITY') = time(); 

我使用CHttpSession 作为会话组件

谢谢

【问题讨论】:

    标签: php session yii


    【解决方案1】:
    1. 在 index.php 中使用它(最后一行)
    2. 使用 ini_set 并将值设置为“session.cache_expire”

    【讨论】:

    • AFAK 所有 ini_set 设置都必须在 session_start() 之前完成,这将在文件顶部,而不是在最后一行。 cache_expire 是会话缓存何时过期,而不是会话本身,如果您阅读手册,您会发现 _这与会话的生命周期无关_
    猜你喜欢
    • 1970-01-01
    • 2014-06-21
    • 2012-10-25
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2014-08-24
    • 2018-01-15
    • 2012-11-10
    相关资源
    最近更新 更多