Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自定义会话超时_Php_Session_Yii - Fatal编程技术网

Php 自定义会话超时

Php 自定义会话超时,php,session,yii,Php,Session,Yii,我想为管理员在我的应用程序中更改会话超时创建一个接口。超时值将以DB为单位 更改会话超时值后,我执行以下操作: $duration = (int) $this->session_duration; Yii::app()->session->setTimeout($duration); Yii::app()->session->setCookieParams(array('lifetime' => $duration)); 然后回显它的值,在我刷新页面之前,一

我想为管理员在我的应用程序中更改会话超时创建一个接口。超时值将以DB为单位

更改会话超时值后,我执行以下操作:

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

谢谢

  • 在index.php中使用它(最后一行)
  • 使用ini\u set并将值设置为“session.cache\u expire”

  • AFAK所有ini_集设置必须在会话_start()之前完成,该会话将位于文件的顶部,而不是最后一行。此外,缓存过期是指会话缓存将过期的时间,而不是会话本身,若阅读手册,您会发现这和会话的生存期无关_