Например, когда я обновляю страницу, ошибка была показана в функции модели с именем user_model и контроллера с именем User.php ниже:
User_model.php:
Код: Выделить всё
public function get_client_id($email)
{
$this->db->select('id');
$this->db->where('email', $email);
$query = $this->db->get('crm_accounts');
$result = $query->row();
return $result->id; //line 135
}
Код: Выделить всё
$email = $_SESSION['email'];
$id = $this->user_model->get_client_id($email); //line 145
Код: Выделить всё
$email = $this->input->post("email");
$password = $this->input->post("pass");
$result = $this->user_model->login($email, $password);
if ($result == TRUE)
{
$this->session->set_userdata('email',$email);
$this->session->set_userdata('logged_in',TRUE);
$data = $this->user_model->get_username($email);
$this->session->set_userdata('data', $data);
redirect('admin_view');
}
else
{
$this->load->view('all_field');
}
Код: Выделить всё
$logged_in = $this->session->userdata('logged_in');
$log = $this->session->userdata('email');
if($logged_in || (!empty($log)))
{
$array_item = array('email', 'logged_in');
$this->session->unset_userdata($array_item);
redirect('');
}
else
{
$this->load->view('error_page');
}
Попытка получить свойство, не являющееся объектом, в строке 135 файла user_model.php, и при обратной трассировке была обнаружена ошибка в Users.php в строке 145.
Я заметил, что когда я получаю этот тип ошибки в модели, я получаю данные в этом конкретном методе, используя переменную сеанса $email, в которой хранятся данные сеанса. Но я поставил в контроллере такое условие:
Код: Выделить всё
public function index()
{
if(!empty($_SESSION['email']))
{
$email = $_SESSION['email'];
$data = $this->user_model->get_username($email);
$this->session->set_userdata('data',$data);
redirect('clientview');
//echo "You are already logged in";
}
else
{
$this->load->view('signup');
}
}
Итак, я не понимаю, в чем на самом деле проблема. Потому что иногда это работает идеально, а иногда нет. Если однажды я получу такую ошибку, мне придется очистить свою историю, а затем снова войти в систему.
Подробнее: https://stackoverflow.com/questions/398 ... non-object
Мобильная версия