【发布时间】:2018-07-02 12:14:21
【问题描述】:
如果管理员正在登录,我希望他们进入管理页面,否则进入约会页面。在用户表中,我有一列“id_roles”,值为“2”和“3”。 2 代表管理员,3 代表用户,角色有单独的表。
这是我的控制器
public function index()
{
// get form input
$email = $this->input->post("email");
$password = $this->input->post("password");
// form validation
$this->form_validation->set_rules("email", "Email-ID", "trim|required");
$this->form_validation->set_rules("password", "Password", "trim|required");
if ($this->form_validation->run() == FALSE)
{
// validation fail
$this->load->view('login_view');
}
else
{
// check for user credentials
$uresult = $this->model_user->get_user($email, $password);
//edit
if (count($uresult) > 0 )
{
// set session
$sess_data = array('login' => TRUE, 'uname' => $uresult[0]->first_name,'ulname' => $uresult[0]->last_name,'uemail' => $uresult[0]->email, 'uphone' => $uresult[0]->phone_number, 'uaddress' => $uresult[0]->address, 'ucity' => $uresult[0]->city, 'uin' => $uresult[0]->injury, 'uid' => $uresult[0]->id);
$this->session->set_userdata($sess_data);
//edit
if($uresult->['id_roles'] == 3)
redirect('appoinments/index');
else
redirect('admin/index');
}
else
{
$this->session->set_flashdata('msg', '<div class="alert alert-danger text-center">Wrong Email-ID or Password!</div>');
redirect('login/index');
}
}
}
这是我的模特
function get_user($email, $pwd)
{
$this->db->where('email', $email);
$this->db->where('password', md5($pwd));
$query = $this->db->get('ea_users');
return $query->result();
}
【问题讨论】:
-
有什么问题?
-
$uresult->id_roles不是['id_roles']。您的模型还应该返回$query->row(),因为您可能只有一个结果,这样您就不必使用索引来访问字段。 -
我已经做了你的改变,我现在的问题是它重定向到一个空白页面。 url 结尾是“登录/索引”。如果我将模型保留为原始模型,它只会重定向到“管理”页面
-
如果您更新了模型,您还需要更新为会话设置的数据,因为您使用的是不存在的编号索引。如果您遇到白屏死机,则需要启用错误报告,
-
我在 if 语句中包含了索引并且它起作用了。如果($uresult[0]->id_roles ==3)。感谢您指出索引。
标签: php codeigniter login