У меня небольшая проблема с аутентификацией, я могу изменить пароль пользователей и сохранить его в базе данных, но позже пользователь не сможет войти с новым паролем,
Вот исходный код процедуры входа в систему
$error = '';
$this->User->set($this->data);
if($this->Session->read($this->_userName)){
$this->redirect('index');
}
if(!empty($this->data)){
if($this->User->validates($this->data)){
$email = $this->data['User']['email_login'];
$password = md5($this->data['User']['password_login']);
if($this->EwtUser->checkLogin($email,$password)){
$this->Session->write($this->_userName,$email);
//....
$this->redirect('index');
}else{
$error = 'Wrong Username or Password';
}
}
$this->set('error',$error);
У меня ошибка в том, что я не могу войти, всегда отображается сообщение the password must be at least 4-32 characters long
.
Вот исходный код для смены пароля.
$data=array
(
'password'=>$user['User']['password']
);
if($data!=null)
{
$newpassword=$_POST['newPwd'];
print_r($newpassword);
$data=md5($newpassword);
echo "<br/>";
print_r($data);
$userid = $user['User']['id'];
try
{
$this->User->update_password($userid,$data);
}
catch(Exception $e){print_r(e.Message);}
}
А вот функция update_password, которая написана в модели.
function update_password($userid, $newpass)
{
$sql=sprintf("UPDATE users SET password='%s' WHERE id=%d",$newpass,$userid);
$this->query($sql);
}