У меня две роли: админ и учитель. Учетные записи администратора и учителя могут войти в систему, однако, когда я зарегистрирую учетную запись учителя, она перенаправится на страницу администратора. Я не знаю, правильно ли работает мой код. Я новичок в использовании codeigniter, поэтому, пожалуйста, несите меня.
Итак, вот мой контроллер:
public function login_validation(){ $this->load->library('form_validation'); $this->form_validation->set_rules('idnum', 'ID Number', 'required|trim|xss_clean|callback_validate_credentials'); $this->form_validation->set_rules('password', 'Password', 'required|md5|trim'); if ($this->form_validation->run()){ //$this->load->model('model_users'); $this->load->model('model_role'); $data = array( 'login_id' => $this->input->post('idnum'), 'is_logged_in' => 1, 'role' => $this->model_role->scalar('user_account','role') ); $this->session->set_userdata($data); redirect('site/members'); } else { $data['title'] = "Outcome-based Education"; $this->load->view("index/header", $data); $this->load->view("index/view_home"); $this->load->view("index/footer"); } } public function members(){ if($this->session->userdata('is_logged_in') && $this->session->userdata('role', 'admin')){ $this->load->view('login/admin'); } elseif($this->session->userdata('is_logged_in') && $this->session->userdata('role', 'teacher')){ $this->load->view('login/members'); } else{ redirect('site/restricted'); } }
И это моя модель:
public function can_log_in(){ $this->db->where('login_id', $this->input->post('idnum')); $this->db->where('password', md5($this->input->post('password'))); $query = $this->db->get('user_account'); if($query->num_rows() == 1){ return true; } else{ return false; } }