用户登录模型编码器错误


Errors For User Login Model Codeigniter

我在父函数中为我的用户模型得到了几个错误。我只是想这么做。如果$user_query->num_rows和my isset session user-data.

致命错误:无法对函数调用的结果使用isset()(您可以使用"null !== func()"代替)在C:'xampp'htdocs'codeigniter-cms-1'admin'application'modules'backend'models'user'user_model.php中的第11行

解析错误:语法错误,意想不到的'if' (T_IF)在C:'xampp'htdocs'codeigniter-cms-1'admin'application'modules'backend'models'user'user_model.php中的第15行

private $user_id;
private $username;
private $permission = array();
public function __construct() {
parent::__construct();
if(isset($this->session->set_userdata('user_id')) { // Error
$user_query = $this->db->query("SELECT * FROM " . $this->input->post('db_prefix') . "user WHERE user_id = '" . (int)$this->session->userdata('user_id') . "' AND status = '1'")
if($user_query->num_rows == 1) { // Error
    $this->user_id = $user_query->row('user_id');
    $this->username = $user_query->row('username');
    $this->db->query("UPDATE " . $this->input->post('db_prefix') . "user SET ip = '" . $this->input->ip_address() "' WHERE user_id = '" . (int)$this->session->userdata('user_id') . "'");
    $user_group_query = $this->db->query("SELECT * FROM " . $this->input->post('db_prefix')  . "user_group WHERE user_group_id = '" . (int)$query->row('user_group_id') . "'");
    } else {
       $this->logout();
    }
  }
}
public function login($username, $password) {
    // Still Working On This Part
}
public function logout() {
    $this->session->unset_userdata('user_id');
    $this->user_id = '';
    $this->username = '';
}

你漏掉了(.)

修改此代码:

$this->db->query("UPDATE " . $this->input->post('db_prefix') . "user SET ip = '" . $this->input->ip_address() "' WHERE user_id = '" . (int)$this->session->userdata('user_id') . "'");

$this->db->query("UPDATE " . $this->input->post('db_prefix') . "user SET ip = '" . $this->input->ip_address()."' WHERE user_id = '" . (int)$this->session->userdata('user_id') . "'");

private $user_id;
private $username;
private $permission = array();
public function __construct() {
parent::__construct();
if(isset($this->session->set_userdata('user_id'))) { // here you missed close bracket
$user_query = $this->db->query("SELECT * FROM  " . $this->input->post('db_prefix') . "user WHERE user_id = '" . (int)$this->session->userdata('user_id') . "' AND status = '1'")
if($user_query->num_rows() == 1) { // num rows is function
    $this->user_id = $user_query->row('user_id');
    $this->username = $user_query->row('username');
    $this->db->query("UPDATE " . $this->input->post('db_prefix') . "user SET ip = '" . $this->input->ip_address()."' WHERE user_id = '" . (int)$this->session->userdata('user_id') . "'");
    $user_group_query = $this->db->query("SELECT * FROM " . $this->input->post('db_prefix')  . "user_group WHERE user_group_id = '" . (int)$query->row('user_group_id') . "'");
    } else {
       $this->logout();
    }
  }
}
public function login($username, $password) {
    // Still Working On This Part
}
public function logout() {
    $this->session->unset_userdata('user_id');
    $this->user_id = '';
    $this->username = '';
}

你不能在$this实例上使用isset函数!试试下面的更新代码;),让我知道它是如何的;)

private $user_id;
private $username;
private $permission = array();
public function __construct() {
parent::__construct();
if(!empty($this->session->set_userdata('user_id'))) { 
$user_query = $this->db->query("SELECT * FROM " . $this->input->post('db_prefix') . "user WHERE user_id = '" .$this->session->userdata('user_id') . "' AND status = '1'");
if($user_query->num_rows > 0) { 
    $this->user_id = $user_query->row('user_id');
    $this->username = $user_query->row('username');
    $this->db->query("UPDATE " . $this->input->post('db_prefix') . "user SET ip = '" . $this->input->ip_address() "' WHERE user_id = '" . (int)$this->session->userdata('user_id') . "'");
    $user_group_query = $this->db->query("SELECT * FROM " . $this->input->post('db_prefix')  . "user_group WHERE user_group_id = '" . (int)$query->row('user_group_id') . "'");
    } else {
       $this->logout();
    }
  }
}
public function login($username, $password) {
    // Still Working On This Part
}
public function logout() {
    $this->session->unset_userdata('user_id');
    $this->user_id = '';
    $this->username = '';
}