Kohana的Session_Cookie可以将会话数据加密,然后以cookie形式保存在客户端。
步骤如下:
1. 在bootstrap.php中增加以下代码:
Cookie::$salt='i love U!'; //自定义Cookie的salt值,否则有异常提示
2. 在application/config/encrypt.php中,代码return array()中增加以下代码:
//自定义名为‘my_crpyt’加密的设置
'my_crpyt' => array(
'key'=>md5("hello world"),//16个字节的密匙
'cipher' => MCRYPT_RIJNDAEL_128,
'mode' => MCRYPT_MODE_NOFB,
)
3. 在application/config/session.php中,代码return array()中增加或修改以下代码:
//Session_Cookie的设置
'cookie' => array(
'name'=>'my_session_cookie', //命名
'encrypted' =>'my_crpyt', //引用加密的实例名
)
4. 在application/classes/controller/welcome.php中,增加以下代码:
//服务端将加密的会话数据,以cookie形式发送给客户端保存
public function action_sesscookie_save()
{
$session=Session::instance('cookie');
$session->set('username','TonyZhao')
->set('email','mr_zyf@163.com');
$this->response->body('会话数据保存!');
}
//加密的会话数据,以cookie形式,从客户端送回服务端,由服务端解密且获取会话数据
public function action_sesscookie_get()
{
echo("送回服务端cookie的加密数据:
");
var_dump($_COOKIE);
$session=Session::instance('cookie');
$user['username']=$session->get('username');
$user['email']=$session->get('email');
echo "
";
echo("解密后的会话数据:
");
var_dump($user);
}
阅读(506) | 评论(0) | 转发(0) |