2015-05-09 54 views
1

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

改变会话超时值后,我做的事:

$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作为会话组件

感谢

回答

-1
  1. 使用它的index.php(最后一行)
  2. 使用ini_set并将值设置为“session.cache_expire”
+0

AFAK所有ini_set设置必须在session_start()之前完成,session_start()将在文件顶部,而不是在最后一行。另外cache_expire是会话缓存过期的时候,而不是会话本身,如果你阅读手册,你会发现* _This与一生的session_ *无关 – dzona