estoy haciendo una validación de recuperación de contraseñas pero tengo dos problemas: el primero que cuando envío un dato vacío se limpia el formulario perdiendo el que ya había ingresado, el segundo es que no se comparan las contraseñas: este es mi formulario:
<?php
$form=$this->beginWidget('CActiveForm', array(
'id'=>'usuario-form',
'enableAjaxValidation' =>true,
'enableClientValidation' => false,
));
?>
este es el método de validación
public function actionNewpass($id)
{
$model = new Usuario('recover');
$user = base64_decode($id);
// print_r($_POST);exit;
if(isset($_POST['Usuario']['password']))
{
if($model->validate()){
$password = $model->hashPassword($_POST['Usuario']['password'], $session = $model->generateSalt());
$sql = "UPDATE `usuario` SET `password` = '" . $password . "', `session` = '" . $session . "' WHERE `id` = $user;";
$connection= Yii::app()->db;
$command=$connection->createCommand($sql);
$command->execute();
Yii::app()->user->setFlash('success', "Contraseña actualizada exitosamente!");
$this->redirect(array('/site/login'));
}
//---------------------------------------------------------------------------------------------
}
if(isset(Yii::app()->user->id)){
$this->redirect(array('/site/index'));
}else{
$this->render('newpass', array('id'=>$user, 'model' => $model) );
}
}
y estas son las reglas
array('password, repeat_password', 'required', 'on'=>'register, recover', 'message'=>'campo requerido: {attribute}'),
array('password', 'compare', 'compareAttribute'=>'repeat_password', 'on'=>'register, recover', 'message'=>'las contraseñas no coinciden'),
de antemano, gracias por la ayuda que me puedan brindar, aún hay muchas cosas que no entiendo de yii