añado esta clase a la biblioteca/Mi/Validar/PasswordConfirmation.phpConfirmación de la contraseña en Zend Framework
<?php
require_once 'Zend/Validate/Abstract.php';
class My_Validate_PasswordConfirmation extends Zend_Validate_Abstract
{
const NOT_MATCH = 'notMatch';
protected $_messageTemplates = array(
self::NOT_MATCH => 'Password confirmation does not match'
);
public function isValid($value, $context = null)
{
$value = (string) $value;
$this->_setValue($value);
if (is_array($context)) {
if (isset($context['password'])
&& ($value == $context['password']))
{
return true;
}
} elseif (is_string($context) && ($value == $context)) {
return true;
}
$this->_error(self::NOT_MATCH);
return false;
}
}
?>
Luego de crear dos campos en mi forma de esta manera:
$userPassword = $this->createElement('password', 'user_password');
$userPassword->setLabel('Password: ');
$userPassword->setRequired('true');
$this->addElement($userPassword);
//create the form elements user_password repeat
$userPasswordRepeat = $this->createElement('password', 'password_confirm');
$userPasswordRepeat->setLabel('Password repeat: ');
$userPasswordRepeat->setRequired('true');
$userPasswordRepeat->addPrefixPath('My_Validate','My/Validate','validate');
$userPasswordRepeat->addValidator('PasswordConfirmation');
$this->addElement($userPasswordRepeat)
todo es bueno pero cuando envío el formulario, siempre aparece el mensaje "La confirmación de la contraseña no concuerda". ¿Qué está mal en mi código
Aquí está una manera de hacer la validación de contraseña utilizando los validadores de Zend (me di cuenta de que puede n O ha sido posible cuando se hizo esta pregunta): http://stackoverflow.com/questions/347856/zend-form-how-to-check-2-fields-are-identical/3782388#3782388 –