0

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

我想用一个base64 encoded/decoded session values.

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

可能吗?

我遇到了麻烦我如何触发会话数据将被设置的那一刻以及数据将被返回的那一刻?

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

class MY_Session extends CI_Session{

}

任何帮助,谢谢

4

1 回答 1

1

您需要覆盖会话库的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 库中的函数。

于 2013-07-17T15:27:31.773 回答