作者:爱心永溢真情永远 | 来源:互联网 | 2014-03-27 00:19
前一篇日志记录了Kohanasession的用法,不过用的是默认的native适配器,如果你想使用database适配器session数据存储到数据表,配置就稍微复杂点。第一步:需要你启用Datab
前一篇日志记录了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,
),
);
关于配置说明:
![Kohana Session适配器配置](http://www.phpddt.com/usr/uploads/2013/07/4029250054.png)
第三步:建立存储表
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,
),
);