我想在代码点火器的set_userdata()函数中从数据库中添加用户的数据,我的代码不起作用。当我显示userdata()时,数据库中的所有字段都没有显示。你能检查一下哪里不对吗?新手代码点火器在这里:(
if($this->form_validation->run()){
$this->load->model('model_users');
$userinfo=$this->model_users->get_user_info();
$data = array(
'empID' => $userinfo->empID,
'email' => $userinfo->email,
'emp_name' => $userinfo->emp_name,
'address' => $userinfo->address,
'position' => $userinfo->position,
'usertype' => $userinfo->usertype,
'is_logged_in' => 1
);
$this->session->set_userdata($data);
redirect('main/home');
} else{
$this->login();
}
,这里是模型
的代码 public function can_log_in(){
$this->db->where('email', $this->input->post('email'));
$this->db->where('password', md5($this->input->post('password')));
$query = $this->db->get('employee');
if($query->num_rows() == 1){
return true;
} else {
return false;
}
}
public function get_user_info(){
$query = $this->db->get_where('employee',array('email'=> $this->input->post('email'),'password'=> md5($this->input->post('password'))));
foreach ($query->result() as $userinfo)
{
echo $userinfo->empID;
echo $userinfo->email;
echo $userinfo->emp_name;
echo $userinfo->address;
echo $userinfo->position;
echo $userinfo->usertype;
}
return $userinfo;
}
如果您从查询中获得任何行,则需要从模型中传递$query->result
。afterforech循环变量$userinfo
为空,因此它不返回任何内容
function get_user_info(){
$query = $this->db->get_where('employee',array('email'=> $this->input->post('email'),'password'=> md5($this->input->post('password'))));
$num = $query->num_rows();
if($num>0){
return $query->result();
}else{
return FALSE;
}
这里使用foreach循环提取值
控制器$user=$this->model_users->get_user_info();
if(!empty($user)){
foreach($user as $userinfo){
$data = array(
'empID' => $userinfo->empID,
'email' => $userinfo->email,
'emp_name' => $userinfo->emp_name,
'address' => $userinfo->address,
'position' => $userinfo->position,
'usertype' => $userinfo->usertype,
'is_logged_in' => 1
);
}
$this->session->set_userdata($data);
}
function get_user_info() {
$this->db->select('*');
$this->db->from('employee');
$this->db->where('email',$this->input->post('email'));
$this->db->where('password',md5($this->input->post('password')));
$query=$this->db->get();
$num = $query->num_rows();
if($num>0){
return $query->row();
}else{
return FALSE;
}
}
控制器$user=$this->model_users->get_user_info();
if(!empty($user)){
$data = array(
'empID' => $userinfo->empID,
'email' => $userinfo->email,
'emp_name' => $userinfo->emp_name,
'address' => $userinfo->address,
'position' => $userinfo->position,
'usertype' => $userinfo->usertype,
'is_logged_in' => 1
);
$this->session->set_userdata($data);
}
尝试创建一个新的数组,而不是存储在$data中。
$sess_array = array();
$sess_array = array(
'id' => $user_info->admin_id,
'username' => $user_info->username,
'password' => $user_info->password,
'last_name' => $user_info->last_name,
'first_name' => $user_info->first_name,
'profile_img' => $user_info->img,
);
$this->session->set_userdata('logged_in', $sess_array);
然后调用so-
$sess_data = $this->session->userdata('logged_in');
echo $sess_data['profile_img']; //This holds the result similarly other values.