我使用以下代码在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,如果不是,如果不是