php - Yii session 存储、生命周期和 cookie

在配置文件 session 存储中使用 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,
        ),
    ),

因此,正如您所见, session 存储在具有给定生命周期的数据库中的表中。但是,如果我检查数据库中存储的 session ,它们不会在给定的生命周期内存储,它们会在一年的生命周期内存储。

在我们的应用程序中,我唯一能找到的生命周期为一年的就是 cookie。例如像这样:

setcookie("cookie_name", $someValue, time()+31536000, "/", "somedomain");

让我感到困惑的是我们应用程序中的 cookie。这可能会覆盖 Yii session 存储配置吗?

更新

我也碰到过这行代码

$_SESSION['POLL_'.$idPoll.'somekey'] = strtotime("now");

那行代码在数据库中插入了一条 session 记录。但该记录也有一年的生命周期。这怎么可能?

最佳答案

您需要添加 timeout像这样配置的参数:

'session' => array(
        'class' => 'CDbHttpSession',
        'timeout' => 5256000,
        // ...

关于php - Yii session 存储、生命周期和 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34332413/

相关文章:

java - 我正在尝试使用 tomcat 实现有弹性的 caSTLe,但出现 ClassNotFo

maven - 如果 Maven 中不存在,如何创建文件夹?

java - 通过表达式或某种解决方法的双向属性绑定(bind)

android - Logcat 警告 :Drawable android:drawable/tex

python - Python 的 Tabulate 逗号对齐错误

php - 检查是否在 PHP 中设置了变量

php - 数据表在服务器端laravel中获取的最大记录数

lua - nodemcu如何减少获取ip地址所需的时间

text - 文本分类的 TensorFlow 示例 - 如何评估您自己的文本?

java - 改造同步调用异步调用