Представьте себе сценарий, особенно с публичным контроллером, когда пользователь вручную обращается к вашему somepage/data_user_edit
и не вводит свой идентификатор. Это ошибка, которую они получат, потому что $user
возвращает bool или нет строк, поэтому $user[0]
не определено.
Во-первых, если это страница редактирования пользователя, то я весьма удивлен, что вы позволяете им вручную вводить их идентификатор в URL-адрес и, по-видимому, изменять данные других пользователей, просто изменяя URL-адрес. Это должно быть получено из переменной session
, и они должны быть зарегистрированы, чтобы видеть даже достижения страницы.
Во-вторых, вы всегда должны, как само собой разумеющееся, проверять, если num_rows() > 0
, прежде чем пытаться получить доступ к вашему result
.
В-третьих, вы можете просто использовать row_array()
для одной записи вместо result_array()
. Вам не понадобится $user[0]
, и вы можете просто использовать $user
, например
if (is_null($this->session->id)) {
show_error('not allowed');
}
$id = $this->session->id;
$query = $this->adminmodel->selectdata('user where id_user = "'.$id.'"');
if ($query->num_rows() !== 1) {
show_error('no user with id');
}
$user = $query->row_array();
$data = array(
'title' => '.:: EVALUASI PROSES BELAJAR MENGAJAR GURU SMA NEGERI 4 BEKASI::. ',
'titlesistem' => $this->model->getTitle(),
'nama' => $user["nama"],
'id_user' => $user["id_user"],
'status' => 'edit',
'username' => $user["username"],
'password' => $user["password"],
'level' => $user["level"],
'tipeakun' => $user["tipeakun"],
);
$this->load->view('admin/header',$data);
$this->load->view('admin/data_user_form');
$this->load->view('admin/footer');