设为首页收藏本站
查看: 87|回复: 0

[PHP] KohanaSession适配器配置,将session数据存储到数据表(Kohana3.3)

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2014-3-27 00:19:00 | 显示全部楼层 |阅读模式
    前一篇日志记录了Kohana session的用法,不过用的是默认的native适配器,如果你想使用database适配器session数据存储到数据表,配置就稍微复杂点。
    第一步:需要你启用Database模块,不多说了,在bootstrap.php中 .
    第二步:通过创建一个APPPATH/config/session.php的session配置文件,你可以应用配置设置到每个session的适配器。
    return array( 'native' => array( 'name' => 'session_name', //'lifetime' => 43200, //默认浏览器关闭时销毁 ), 'COOKIE' => array( 'name' => 'COOKIE_name', 'encrypted' => TRUE, 'lifetime' => 43200, ), 'database' => array( 'name' => 'database_name', 'encrypted' => FALSE, //如果这里你设置TURE,那么你就要配置encrypt 'lifetime' => 43200, 'group' => 'default', 'table' => 'sessions', 'columns' => array( 'session_id' => 'session_id', 'last_active' => 'last_active', 'contents' => 'contents' ), 'gc' => 500, ), );
    关于配置说明:

    第三步:建立存储表
    CREATE TABLE `sessions` ( `session_id` VARCHAR(24) NOT NULL, `last_active` INT UNSIGNED NOT NULL, `contents` TEXT NOT NULL, PRIMARY KEY (`session_id`), INDEX (`last_active`) ) ENGINE = MYISAM;
    表说明:
    session_id   "id"列的名称
    last_active   session最后一次进行更新的UNIX时间戳
    contents   用一个序列化的字符串存储session数据,并选择性地加密
    最后,如上说明,如果你的session.php中'encrypted' => TRUE,那么你还要建立APPPATH/config/encrypt.php文件:
    return array( 'default' => array( 'key' => 'phpddt.com', 'cipher' => MCRYPT_RIJNDAEL_128, 'mode' => MCRYPT_MODE_NOFB, ), );
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表