在 CodeIgniter 中用于身份验证时,$this->会话>用户数据和$this->会话->has_userdata是否相同?



我使用以下代码在codeigniter中进行身份验证。

if(empty($this->session->userdata('user_id'))){
        redirect(base_url());
}

再次阅读文档后,我发现Codeigniter具有另一个功能。

if(!($this->session->has_userdata('user_id'))){
            redirect(base_url());
}

如果两个代码相同或我的代码都有安全问题?

两个都是不同的函数&他们俩都有自己的用法。

第二个是更好的选择,因为它检查了user_data是否具有user_id键&因此,在较少的代码上运行(但这是一个旧的函数,您应该使用isset($_SESSION[$key])而不是使用CC_3(。

第一个: -

if(empty($this->session->userdata('user_id'))){
    redirect(base_url());
}

它访问userdata数组中user_id键的值。

和第二个: -

if(!($this->session->has_userdata('user_id'))){
        redirect(base_url());
}

它检查user_id密钥是否存在。

注意:

has_userdata($key)是一种旧方法,仅用于向后与旧应用程序的兼容性。这只是isset($_SESSION[$key])的别名 - 请改用。

如果存在指定的密钥,则返回true,如果不是,如果不是

相关内容

最新更新