Я пытался решить проблему с моим кодом, которая позволит любому паролю войти в систему на панели инструментов. Например, любой пользователь, зарегистрированный на платформе, может использовать свою электронную почту и любой пароль для входа в систему. Пароль сохраняется как ha sh в базе данных, но когда я хочу войти, любой пароль может войти в систему пользователя, который не должен , Например, 123456 будет входить в систему пользователя, а 656565656 может входить в систему от того же пользователя. Пожалуйста, помогите мне, я знаю, что где-то не правильно, но я не могу понять, где я ошибаюсь.
Вот мой контроллер:
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper('url');
}
public function index()
{
$this->form_validation->set_rules('emailid','Email id','required|valid_email');
$this->form_validation->set_rules('password','Password','required|min_length[6]');
if($this->form_validation->run())
{
$emailid=$this->input->post('emailid');
$password=password_verify($this->input->post('password'),$account->password);
$status=1;
$this->load->model('User_Login_Model');
$validate=$this->User_Login_Model->validatelogin($emailid,$password,$status);
if($validate)
{
$this->session->set_userdata('uid',$validate);
redirect('user/dashboard');
} else
{
$this->session->set_flashdata('error', 'Invalid details. Please try again with valid details');
redirect('user/login');
}
}
}
Вот мой файл модели для входа в систему пользователя
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper('url');
}
public function validatelogin($emailid,$password,$status)
{
$query=$this->db->where(['emailId'=>$emailid,'userPassword'=>$password]);
$account=$this->db->get('tblusers')->row();
if($account!=NULL)
{
$dbstatus=$account->isActive;
//verifying status
if( $dbstatus==$status)
{
return $account->id;
}
else
{
return NULL;
$this->session->set_flashdata('error', 'Your accounis is not active contact admin');
redirect('user/login');
}
}
return NULL;
}