КАК set_userdata логин codeigniter - PullRequest
0 голосов
/ 13 ноября 2018

Я получаю сообщение об ошибке: Попытка получить свойство не-объекта, и я не знаю, решил эту проблему. пожалуйста помогите

CONTROLLER

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;
    }
} 

Ответы [ 4 ]

0 голосов
/ 13 ноября 2018

Ваша модель

Используйте скобки с состоянием вашей базы данных

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() для вашегосостояние

Подробнее

0 голосов
/ 13 ноября 2018

Сначала вы загружаете модель в свой контроллер:

$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" );
0 голосов
/ 13 ноября 2018

Попробуйте заменить

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

с

if($myquery){ 
// your code
}
0 голосов
/ 13 ноября 2018

Использование $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');
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...