Иногда пытаюсь получить свойство, не являющееся объектомPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Иногда пытаюсь получить свойство, не являющееся объектом

Сообщение Anonymous »

После входа в систему через некоторое случайное время, когда я обновляю любую страницу на веб-сайте, иногда все работает отлично, но иногда появляется ошибка, например, «Попытка получить права на разные строки файла модели и контроллера».

Например, когда я обновляю страницу, ошибка была показана в функции модели с именем 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
}
Users.php:

Код: Выделить всё

$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');
}
}
Итак, если значение переменной сеанса $email не установлено, оно должно перейти на страницу регистрации.

Итак, я не понимаю, в чем на самом деле проблема. Потому что иногда это работает идеально, а иногда нет. Если однажды я получу такую ​​ошибку, мне придется очистить свою историю, а затем снова войти в систему.

Подробнее: https://stackoverflow.com/questions/398 ... non-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»