繁体   English   中英

Codeigniter-PHP-在存储之前和返回时对会话用户数据进行编码和解码

[英]Codeigniter - PHP - encode and decode session userdata before is store and when is returned

我想在Codeigniter中扩展Session.php库。

我想使用base64 encoded/decoded session values

所以基本上我想在设置所有会话数据之前对其进行全局编码(session-> set_userdata()),然后在返回时对其进行解码(session-> userdata('item'))

可能吗?

我很麻烦如何设置会话数据以及何时返回数据该怎么办?

我正在使用Codeigniter会话数据库,并计划编写MY_Session.php库,但无法继续,我在这里被屏蔽:

class MY_Session extends CI_Session{

}

任何需要的帮助,谢谢

您需要覆盖会话库的session->set_userdata()session->userdata()

class MY_Session extends CI_Session{
    public function set_userdata($data, $singleVar = NULL) {
        if(is_array($data)) {
            foreach($data as $key => &$value) {
                //Encode $value
            }
            parent::set_userdata($array);
        }
        else {
            //Encode $singleVar 
            parent::set_userdata($data, $singleVar);
        }
    }

    public function userdata($item) {
        $data = parent::userdata($item);
        //Decode $data
        return $data;
    }
} 

您的新函数将是可公开调用的,而不是会话类中的函数,并且可以通过调用parent::来访问Codeigniter库中的函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM