我有一个问题,即以下if
条件总是进入第一个if
条件,而从未进入elseif
条件。
这是我的下面的代码:
if ($this->session->has_userdata('role') == 1) {
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('adashboard');
} elseif ($this->session->has_userdata('role') == 2) {
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('udashboard');
}
你能告诉我为什么吗?
答案 0 :(得分:0)
希望这对您有帮助:
使用userdata
代替has_userdata
:userdata
返回指定项目键的值
if ($this->session->userdata('role') == 1)
{
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('adashboard');
}
elseif ($this->session->userdata('role') == 2)
{
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('udashboard');
}
更多信息:https://www.codeigniter.com/user_guide/libraries/sessions.html
答案 1 :(得分:0)
希望这对您有帮助
has_userdata()检查是否设置了给定的会话索引,并返回布尔值。
$this->session->has_userdata('role') ;
此代码检查是否设置了角色。因此,在您的情况下,它返回true等于1。
根据您的情况,您需要使用userdata()
而不是has_userdata()
。
$role=$this->session->userdata('role');
if ($role == 1) {
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('adashboard');
} elseif ($role == 2) {
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('udashboard');
}