【发布时间】:2016-03-23 19:01:54
【问题描述】:
在配置文件会话 storaged 中使用 Yii 框架的处理如下:
'session' => array(
//'sessionName' => 'SomeSession',
'class' => 'CDbHttpSession',
'connectionID' => 'SomeConnection',
'autoCreateSessionTable' => false,
'sessionTableName' => 'SomeTable',
'autoStart' => 'false',
'cookieMode' => 'only',
'useTransparentSessionID' => false,
'timeout' => CSESSIONTIMEOUT,
'cookieParams' => array(
'path' => '/',
'domain' => '.somedomain.extension',
'expire' => time()+5256000,
'lifetime' => time()+5256000,
//'httpOnly' => true,
),
),
因此,正如您所见,会话存储在具有给定生命周期的数据库中的表中。但是,如果我检查数据库中存储的会话,它们并没有以给定的生命周期存储,而是以一年的生命周期存储。
在我们的应用程序中,我能找到的唯一生命周期为一年的就是 cookie。比如这样:
setcookie("cookie_name", $someValue, time()+31536000, "/", "somedomain");
让我感到困惑的是我们应用程序中的 cookie。这可能会覆盖 Yii 会话存储配置吗?
更新
我也遇到过这行代码
$_SESSION['POLL_'.$idPoll.'somekey'] = strtotime("now");
那行代码在数据库中插入了一条会话记录。但该记录也有一年的寿命。这怎么可能?
【问题讨论】: