Codeigniter如何在登录后获取用户ID

5

我已成功创建了一个注册和登录系统。
在登录表单中,我使用了用户电子邮件和密码,并希望显示与已登录用户相关的用户名和其他属性。

在CodeIgniter中,在登录后获取用户ID的最简单和最佳实践是什么?


修正了一些语法和格式。 - Phantômaxx
3个回答

3

最佳实践是,在成功检查模型中的登录详细信息后,应创建一个会话保存该用户的用户ID,并在应用程序中任何地方使用该会话来获取相应的用户数据。请查看以下伪代码以登录用户。

    public function userAuthentication($username,$pass)
{

$this->db->select('id');
$this->db->where('username',$username);
$this->db->where('password',md5($pass));
$result = $this->db->get('users')->result();

if(!empty($result)){
   $this->session->set_userdata('userlogged_in', $result[0]->id);
  return true;
}else{
  return false;
}

}

您可以将此函数放在您的模型中,并在控制器中应用它。希望对您有所帮助。

不用谢,我很高兴能够帮到你 :)。 - Irshad Ali Jan

3

优秀的编码人员在登录时创建 session 并在整个网站中使用 session

public function login($username, $password) {
    $user = $this->db
        ->select("username, name, phone")
        ->where(
             [
                'username' => $username,
                'password' => md5($password)
             ]
         )
        ->get("table_name")
        ->row();

   if ($user) {
         $logindata = [
             'userid' => $user->username,
             'name'   => $user->name,
             'phone'  => $user->phone
         ];
         $this->session
              ->set_userdata($logindata);
         return true;
   }
   else {
         return false;
   }
} 

然后您可以在网站的任何位置使用它。
echo $this->session->userid;

我希望这可以在一般情况下对你有所帮助。

1
谢谢Ian,这真的很有帮助 :) - Hombre Filiz

0

登录成功后,您可以创建一个会话并设置用户ID。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接