无法在codeigniter中获取会话的用户名用户标识

时间:2014-06-23 15:24:49

标签: php codeigniter

我的库中有一个名为getID的函数但我无法在我的会话中添加它我不确定为什么我可以获取我的用户名

我有会话自动加载

如何获取已登录用户的用户ID并将其设置在会话中。

public function login() {
if($user_query->num_rows() == 1 ) {
$this->getID = $this->user_id;

$data = array(
'islogged' => true,
'user_id' => $this->user_id,
'username' => $this->CI->input->post('username')
);

$this->CI->session->set_userdata($data);
//$this->CI->db->query("UPDATE " . $this->CI->db->dbprefix . "user SET ip = '" . $this->CI->input->ip_address() . "' WHERE user_id = '" . (int)$this->CI->session->userdata('user_id') . "'");
return true;
} else {
return false;
}

}

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

public function isLogged() {

}

public function getID() {
  return $this->CI->db->get_where('user', array('user_id' => $user_id))->row();
}

2 个答案:

答案 0 :(得分:0)

$getIDdata = $this->getID($this->user_id);

private function getID($userid) {
    return $this->CI->db->get_where('user', array('user_id' => $user_id))->row();
}

由于您的函数依赖于用户标识,您必须将其作为变量传递。

答案 1 :(得分:0)

我在查看代码并思考了更多关于这个主题的问题后修复了自己的问题我现在已经开始工作所有我必须做的就是添加$this->user_id = $user_query->row('user_id'); 和num行区域下面的$this->username = $user_query->row('username');。并在登录功能下面的其他功能中返回。

现在全部工作我现在可以获取用户ID号。

public function login() {
$username = $this->CI->input->post('username');
$password = $this->CI->input->post('password');

$this->CI->db->select('user_id');
$this->CI->db->from('user');
$this->CI->db->where('username', $username);
$this->CI->db->where('password',  hash('sha512', $password));
$this->CI->db->where('status', "1");
$user_query = $this->CI->db->get();

if($user_query->num_rows) {
$this->user_id = $user_query->row('user_id');
$this->username = $user_query->row('username');

$data = array(
'user_id' => $this->user_id
);
$this->CI->session->set_userdata($data);

return true;
} else {
return false;
}

public function getId() {
return $this->user_id;
}

public function getUserName() {
return $this->username;
}