сбой пароля и повторной регистрации - PullRequest
0 голосов
/ 08 марта 2012

У меня небольшая проблема с аутентификацией, я могу изменить пароль пользователей и сохранить его в базе данных, но позже пользователь не сможет войти с новым паролем, Вот исходный код процедуры входа в систему

    $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);
}
...