Cakephp - checkPasswords всегда ложно - PullRequest
0 голосов
/ 18 апреля 2009

Я работаю над процессом регистрации и хочу проверить, совпадают ли два пароля (пароль + повторно введенный пароль). Это мои правила проверки в пользовательской модели:

var $validate = array(
    'username' => array( 
            'notEmpty' => array( 
                    'rule' => array('minLength', 5), 
                    'required' => true, 
                    'allowEmpty' => false, 
                    'message' => 'User name has to be at least 5 characters long' 
                ),
        array(
            'rule' => 'isUnique',
            'message' => 'User name taken. Use another'
        )
    ),
    'password' => array(
                'notEmpty' => array( 
                    'rule' => array('minLength', 6), 
                    'required' => true, 
                    'allowEmpty' => false, 
                    'message' => 'Password has to be at least 6 characters long'
        ),
        'password_similar' => array( 
                    'rule' => 'checkPasswords',
                    'message' => 'Entered passwords does not match' 
            )
    ),
    'email' => array(
        'rule' => 'email',
        'required' => true,
        'allowEmpty' => false,
        'message' => 'Please enter a valid email'
    )
);

В users_controller.php у меня есть функция checkPasswords:

function checkPasswords($data) { 
    if($data['password'] == $this->data['User']['password2hashed']) 
        return true; 
      else
        return false;    
}

Моя подпрограмма выглядит так:

function signup(){ 
    if (!empty($this->data)) { 
        if(isset($this->data['User']['password2'])) 
               $this->data['User']['password2hashed'] = $this->Auth->password($this->data['User']['password2']); 


     $this->User->create(); 

    if ($this->User->save($this->data)) { 
.
.
.
}

Что бы я ни делал, пароли не совпадают. Даже если я изменю функцию checkPasswords на эту:

function checkPasswords($data) { 
    return true;
}

Что может вызвать такое поведение?

1 Ответ

0 голосов
/ 18 апреля 2009

OMG Я только что понял, что функция checkPasswords должна быть не в контроллере, а в модели. Проблема решена, мне стыдно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...