如何设置userdata登录代码点火器



我得到消息错误:试图获取非对象的属性,但我不知道解决了这个问题。请帮助

控制器

public function login_user(){
$user =array( 'email_user'=> $this->input->post('email_user'),
'password_user'=> $this->input->post('password_user'));
$myquery= $this->user_model->login_check($user['email_user'], 
$user['password_user']);
if ($myquery== TRUE) {
foreach($myquery as $d){ 
$session_array = array(
'id_user'=>$d->id_user,
'username_user'=>$d->username_user,
'email_user'=>$d->email_user,
'phone_user'=>$d->phone_user,
'tanggal_lahir'=>$d->tanggal_lahir
);
$this->session->set_userdata('loggedIn',$session_array);}
$this->load->view('v_formluar.php');
}
else{
$this->session->set_flashdata('error_msg', 'Error occured,Try again.');
$this->load->view('v_login.php');
}
}

我不知道从模型到控制器的数据,

我的型号

public function login_check($email, $password){
$this->db->select('registrasi.user_id,
registrasi.username_user,
registrasi.email_user,
registrasi.password_user')
->from('registrasi')
->where("registrasi.email_user = '$email' OR registrasi.username_user = '$email' ");
$query = $this->db->get();
if($query->num_rows() == 1){
return $query->row();
} else {
return false;
}
} 

您对$myquery的使用是不正确的,因为您的模型返回数据或false。更改控制器代码如下:

public function login_user(){
$user =array( 'email_user'=> $this->input->post('email_user'),
'password_user'=> $this->input->post('password_user'));
$myquery= $this->user_model->login_check($user['email_user'], 
$user['password_user']);
if ($myquery!=FALSE) {
foreach($myquery as $d){ 
$session_array = array(
'id_user'=>$d->id_user,
'username_user'=>$d->username_user,
'email_user'=>$d->email_user,
'phone_user'=>$d->phone_user,
'tanggal_lahir'=>$d->tanggal_lahir
);
$this->session->set_userdata('loggedIn',$session_array);}
$this->load->view('v_formluar.php');
}
else{
$this->session->set_flashdata('error_msg', 'Error occured,Try again.');
$this->load->view('v_login.php');
}
}

首先在控制器中加载模型:

$this->load->model('your_model_name_m');

然后你可以在你的控制器中使用模型:

$logged_in = $this->your_model_name_m->login_check('me@us.com', 'password!#$');

如果你经常使用这个模型,你也可以通过模型部分的配置文件自动加载:

$autoload['model'] = array( "your_model_name" );

您的型号

使用括号与您的数据库条件

public function login_check($email, $password){
$this->db->select('registrasi.user_id,
registrasi.username_user,
registrasi.email_user,
registrasi.password_user')
->from('registrasi')
->where("(registrasi.email_user = '$email' OR registrasi.username_user = '$email' )");
$query = $this->db->get();
if($query->num_rows() == 1){
return $query->row();
} else {
return false;
}
}

您的控制器

if(isset($myquery) && $myquery != ''){
//foreach loop
}else{
//No record found
}

您也可以将where()or_where()用于您的条件

阅读更多

尝试替换

if($myquery==TRUE){ 
// your code
} 

带有

if($myquery){ 
// your code
}

最新更新