Php 验证电子邮件后codeigniter登录
我正在尝试确保用户在确认其电子邮件验证(数据库中的状态从0更改为1)后可以登录。如何根据数据库中状态的更改登录用户。提前谢谢 型号:Php 验证电子邮件后codeigniter登录,php,codeigniter,login,Php,Codeigniter,Login,我正在尝试确保用户在确认其电子邮件验证(数据库中的状态从0更改为1)后可以登录。如何根据数据库中状态的更改登录用户。提前谢谢 型号: public function login($username, $password){ //validation $this->db->where('username', $username); $this->db->where('password', $password); $result = $
public function login($username, $password){
//validation
$this->db->where('username', $username);
$this->db->where('password', $password);
$result = $this->db->get('users');
if($result->num_rows() == 1){
return $result->row(0)->id;
} else {
return FALSE;
}
}
控制器:
public function login(){
$data['title'] = 'Login';
$this->form_validation-> set_rules('username', 'Username', 'required');
$this->form_validation-> set_rules('password', 'Password', 'required');
if($this->form_validation->run() === FALSE){
$this->load->view('templates/header');
$this->load->view('users/login', $data);
$this->load->view('templates/footer');
} else {
// fetching user
$username = $this->input->post('username');
//password
$password = ($this->input->post('password'));
//login user
$user_id = $this->user_model->login($username, $password);
if($user_id){
//creating session
$user_data = array(
'user_id' => $user_id,
'username' => $username,
'logged_in' => TRUE,
);
$this->session->set_userdata($user_data);
// Set message to be sent
$this->session->set_flashdata('user_login', 'Welcome');
redirect('posts');
} else {
// Set message to be sent
$this->session->set_flashdata('login_fail', 'Login Failed');
redirect('users/login');
}
}
}
您只需验证尝试登录的用户是否已验证我是否正确查询 为此,您只需在查询生成器中添加另一个where语句,同时检查用户名和密码。所以你的模型会像
public function login($username, $password){
//validation
$this->db->where('username', $username);
$this->db->where('password', $password);
$this->db->where('status', '1');
$result = $this->db->get('users');
if($result->num_rows() == 1){
return $result->row(0)->id;
} else {
return FALSE;
}
}
所以现在,即使用户提交了正确的登录详细信息,但尚未验证其帐户,他也将无法登录。如果您的查询正确,您只需验证尝试登录的用户是否已被验证 为此,您只需在查询生成器中添加另一个where语句,同时检查用户名和密码。所以你的模型会像
public function login($username, $password){
//validation
$this->db->where('username', $username);
$this->db->where('password', $password);
$this->db->where('status', '1');
$result = $this->db->get('users');
if($result->num_rows() == 1){
return $result->row(0)->id;
} else {
return FALSE;
}
}
所以现在,即使用户提交了正确的登录详细信息,但尚未验证其帐户,他也将无法登录。如果您询问如何检查用户是否已验证,则这应该是您的模型代码:
public function login($username, $password){
$query = $this->db
->select('your_column')
->where(['user_email' => $user_name, 'user_password' => $user_password])
->where('user_verification_status','1')
->get('users');
if ($query->num_rows() == 1) {
$result = $query->row_array();
return $result;
} else {
return FALSE;
}
}
或者,如果要在注册后验证用户,则应遵循以下步骤:
当有人在您的系统中注册时,以及当您在注册表中保存该用户数据时,您应该使用输入的电子邮件并在用户电子邮件上发送验证链接。
在该验证链接中,当用户单击它时,它会出现在您的验证页面上,此时您应该更改用户的状态,并显示用户已验证的消息,现在您可以登录到系统。
作为答案中给出的模型代码,您应该检查用户是否已验证。
如果您需要有关用户验证的更多详细信息,请告诉我 如果您询问如何检查用户是否已验证,则这应该是您的型号代码:
public function login($username, $password){
$query = $this->db
->select('your_column')
->where(['user_email' => $user_name, 'user_password' => $user_password])
->where('user_verification_status','1')
->get('users');
if ($query->num_rows() == 1) {
$result = $query->row_array();
return $result;
} else {
return FALSE;
}
}
或者,如果要在注册后验证用户,则应遵循以下步骤:
当有人在您的系统中注册时,以及当您在注册表中保存该用户数据时,您应该使用输入的电子邮件并在用户电子邮件上发送验证链接。
在该验证链接中,当用户单击它时,它会出现在您的验证页面上,此时您应该更改用户的状态,并显示用户已验证的消息,现在您可以登录到系统。
作为答案中给出的模型代码,您应该检查用户是否已验证。
如果您需要有关用户验证的更多详细信息,请告诉我 考虑到您已准备好验证系统,并且正在将db中的状态列从0更改为1。 使用下面的代码,您将能够根据该要求执行登录,在用户未被验证的情况下通知用户 返回的模型有正确的错误: 控制器使用从模型返回的数组
考虑到您已准备好验证系统,并且正在将数据库中的状态列从0更改为1。 使用下面的代码,您将能够根据该要求执行登录,在用户未被验证的情况下通知用户 返回的模型有正确的错误: 控制器使用从模型返回的数组
我不知道你是如何创建密码的,数据库中没有明文,然后使用回调函数进行验证。我知道我现在只关心登录。我肯定会把密码弄乱你的问题不清楚。你想做什么?你想检查用户是否在登录时验证,还是在注册后用户应该验证电子邮件,然后用户才能登录。我不确定你如何创建密码数据库中没有明文,然后使用回调函数进行验证我知道我现在只关心登录。我肯定会把密码弄乱你的问题不清楚。你想做什么?您是要检查用户在登录时是否已验证,还是在注册后用户应验证电子邮件,然后用户才能登录。