我有一个奇怪的问题。我在Yii中构建了一个Web应用程序。
每当我从应用程序注销时,用户都会返回主页。但是,如果我刷新页面。用户再次登录。
这是配置文件
'session' => array(
'class'=>'CDbHttpSession',
'timeout'=>$params['session_timeout'],
'autoStart'=>true,
),
这是我的退出代码
Yii::app()->session->clear();
Yii::app()->session->destroy();
Yii::app()->cache->flush();
Yii::app()->user->logout();
最近我发现运行时文件夹中有一个名为session-1.1.8的文件。注销时不会删除它。如果我手动删除它,那么用户将永久注销。
所以我的问题是
1)我在这里做错了吗?
2)这个“session-1.1.8”文件是什么?
3)如何永久退出?
答案 0 :(得分:1)
来自Yii docs:
默认情况下,它将使用名为的SQLite3数据库 应用程序运行时目录下的'session-YiiVersion.db'。您 也可以指定connectionID,以便它使用数据库应用程序 用于访问数据库的组件。
这是文件来自,尝试使用您自己的db
组件,这应该修复。
Yii::app()->user->logout();
已调用Yii::app()->getSession()->destroy();
,因此您无需手动执行此操作。
答案 1 :(得分:0)
我使用这套装置并且非常好:
'cache'=>array(
'class' => 'CFileCache',
),
'session' => array(
'class' => 'CDbHttpSession',
'timeout' => 60*60*24*30*12*5,
),
60 * 60 * 24 * 30 * 12 * 5 = 60秒,60分钟,24小时,30天,12个星期五,5年