未定义偏移:提交后,我的编辑数据表单中发生0错误。 有时,这是可行的,但在大多数情况下却没有。知道错误发生在哪里吗?
function data_user_edit($id = ''){
$user = $this->adminmodel->selectdata('user where id_user = "'.$id.'"')->result_array();
$data = array(
'title' => '.:: EVALUASI PROSES BELAJAR MENGAJAR GURU SMA NEGERI 4 BEKASI::. ',
'titlesistem' => $this->model->getTitle(),
'nama' => $user[0]["nama"],
'id_user' => $user[0]["id_user"],
'status' => 'edit',
'username' => $user[0]["username"],
'password' => $user[0]["password"],
'level' => $user[0]["level"],
'tipeakun' => $user[0]["tipeakun"],
);
$this->load->view('admin/header',$data);
$this->load->view('admin/data_user_form');
$this->load->view('admin/footer');
答案 0 :(得分:0)
检查$user
是否为空,并验证您所编码的有效
答案 1 :(得分:0)
想象一下一个场景,尤其是在使用公共控制器的情况下,用户手动进入您的somepage/data_user_edit
,并且没有输入其ID。这是他们将得到的错误,因为$user
返回布尔值或没有行,因此未定义$user[0]
。
首先,如果这是一个用户编辑页面,那么让您感到惊讶的是,他们允许他们选择手动将其ID输入到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');