2014-10-03 2 views
0

Когда я вхожу в систему, он не возвращает правильный user_id, который принадлежит имени пользователя. Вместо этого я получил сообщение об ошибке:Вход в систему не возвращает правильный идентификатор пользователя

Номер ошибки: 1054 Неизвестный столбца '0' в 'где предложение' SELECT * FROM (пользователь) где 0 = 'user_id' AND 1 IS NULL Имя файла: C: \ Xampp \ HTDOCS \ CodeIgniter-АЯ \ системы \ базы данных \ DB_driver.php Порядковый номер: 330

Как я смог получить правильный user_id, что принадлежит к имени пользователя, вошедший в?

Пользовательский автомат загружается автоматически.

<?php 

class User { 

    public function __construct() { 
     $this->CI =& get_instance(); 
    } 

    public function getUserID($user_id) { 
     if ($this->CI->session->userdata('username')) { 
      return $this->CI->db->get_where('user', array('user_id', $user_id)); 
     } else { 
      return false; 
     } 
    } 
} 

Контроллер

public function index() { 
    $this->document->setTitle($this->lang->line('heading_title')); 

    $data['text_logged'] = sprintf($this->lang->line('text_logged'), '<strong>' . $this->user->getUsername() . '</strong>'); 

    $data['user_id'] = $this->user->getUserID($user_id); 

    $data['logout'] = site_url('admin/common/logout'); 

    return $this->load->view('common/dashboard', $data); 
} 
+0

Когда вы говорите, что это не возвращает правильный идентификатор пользователя, что это возвращение? – sark9012

+0

его не перенастройки ничего просто пустой номер ошибки: 1054 Неизвестный столбец '0' в 'где п' SELECT * FROM ('user') WHERE' 0 '= 'user_id' и' 1 'IS NULL файла : C: \ Xampp \ htdocs \ codeigniter-cms \ system \ database \ DB_driver.php Номер строки: 330 –

ответ

3

Я считаю, что вы имеете в виду:

return $this->CI->db->get_where('user', array('user_id'=> $user_id)); 

Вы сейчас проходит 2 значения в массиве, а не только ключ => значение пары

+0

Что бы вы посоветовали исправить это, я споткнулся. –

+0

@acoderslife Вы передаете два значения в своем массиве вместо пары ключ => значение. Это _is_ исправить. –

+0

@Damien Pirsy Я нашел, чтобы иметь возможность получить правильный идентификатор пользователя при входе в систему. Я понял свою ошибку в том, что вы сказали. Я добавил свой ответ. –

0

Теперь я могу получить правильный идентификатор пользователя. Когда я вошел в систему.

Мне пришлось добавить функцию в мою область проверки в моей учетной записи пользователя.

Я добавил его для установки сеансов и теперь можно получить правильный идентификатор.

Вот то, что добавил

$this->CI->db->select('user_id'); 
$this->CI->db->where('username', $this->CI->input->post('username')); 
$query = $this->CI->db->get('user'); 
$row = $query->row(); 

$data = array(
'isLogged' => TRUE, 
'user_id' => $row->user_id, 
'username' => $this->CI->input->post('username') 
); 

$this->CI->session->set_userdata($data); 

Пользователь Lib

<?php 

class User { 

    public function __construct() { 
     $this->CI =& get_instance(); 
    } 


    public function login() { 
     $this->CI->load->library('password'); 

     $this->CI->db->select('password'); 
     $this->CI->db->where('username', $this->CI->input->post('username')); 
     $query = $this->CI->db->get('user'); 
     $row = $query->row(); 

     if ($this->CI->password->validate_password($this->CI->input->post('password'), $row->password)) { 

     $this->CI->db->select('user_id'); 
     $this->CI->db->where('username', $this->CI->input->post('username')); 
     $query = $this->CI->db->get('user'); 
     $row = $query->row(); 

     $data = array(
     'isLogged' => TRUE, 
     'user_id' => $row->user_id, 
     'username' => $this->CI->input->post('username') 
     ); 

     $this->CI->session->set_userdata($data); 

     return true; 

     } else { 

     $this->CI->session->set_flashdata('error', 'Incorrect Username Or Password! Please Try Again'); 
     return false; 
     } 
    } 

    public function logout() { 
    $this->CI->session->sess_destroy(); 
    } 

    public function getUsername() { 
    return $this->CI->session->userdata('username'); 
    } 

    public function getUserID() { 
    return $this->CI->session->userdata('user_id'); 
    } 


} 
Смежные вопросы