404 Not Found
404 Not Found

Reputation: 1223

it's not validating my form data

i have form like this

my form

  <?php

   $error = $model->getErrors();
   print_r($error);

   <form method="post" action="<?php echo Yii::app()->getBaseUrl(true).'/index.php/admin/user/resetpassword'?>" enctype="multipart/form-data">
     <div class="row">
       <label>Old Password</label><input type="password" name="oldpassword" value="<?php echo $model->email; ?>"/><span><?php if(isset($error['email'])) echo $error['email'][0]; ?></span>
    </div> 
    <div class="row">
      <label>New Password</label><input type="password" name="newpassword"/><span><?php if(isset($error['password'])) echo $error['password'][0]; ?></span>
    </div>
    <div class="row">
      <label>Repeat Password</label><input type="password" name="repeatpassword" value="<?php echo $model->employeeid; ?>"/><span><?php if(isset($error['employeeid'])) echo $error['employeeid'][0]; ?></span>
    </div>
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Reset Password' : 'Save'); ?>
 </form>

my model class is

   class User extends CActiveRecord
   {
    public $oldpassword;
    public $newpassword;
    public $repeatpassword;
    /**
 * @return string the associated database table name
 */
public function tableName()
{
    return 'user';
}
    /**
 * @return array validation rules for model attributes.
 */
public function rules()
{
    // NOTE: you should only define rules for those attributes that
    // will receive user inputs.
    return array(
        array('email, password, employeeid, designation, manager, profilepic', 'required','except'=>'resetpassword'),
                   array('email','email'),              array('profilepic','file','types'=>'jpg,jpeg,png','allowEmpty'=>true,'on'=>'update'),
                    array('email,employeeid','unique'),
                    array('newpassword, repeatpassword, oldpassword','required','on'=>'resetpassword'),
                    array('repeatpassword','compare','compareAttribute'=>'newpassword','on'=>'resetpassword'),

        array('email, password, employeeid, designation, manager, profilepic', 'safe', 'on'=>'search'),
    );
}

my controller function

     public function actionResetPassword()
    {
        $model = new User('resetpassword');

        if(Yii::app()->request->isPostRequest)
        {
            if($model->validate())
                $this->redirect(array('resetpassword','msg'=>'Password successfully changed..'));
        }
        $this->render('resetpassword',array('model'=>$model));
    }

it always giving error say "oldpassword,repeatpassword,newpassword required" even though have entered value..

can anybody help me pls

Thanks in advance

Upvotes: 2

Views: 85

Answers (2)

Munir Basheer
Munir Basheer

Reputation: 162

As mentioned by Kalpit above, you are not assigning form inputs to your model instance. You may also solve this problem like this..

$model = new User;
if(isset($_POST['resetpassword']))
{
    $model->attributes=$_POST['resetpassword'];
    if($model->save())
   // successfully saved, do something here
}

Upvotes: 0

Kalpit
Kalpit

Reputation: 4936

it's because you are not assigning form value to model variable...

try this in your controller

   if(Yii::app()->request->isPostRequest)
        {
            $model->oldpassword=$_POST['oldpassword']; //will set to model variable
            $model->newpassword=$_POST['newpassword'];
            $model->repeatpassword=$_POST['repeatpassword'];
            if($model->validate())
                $this->redirect(array('resetpassword','msg'=>'Password successfully changed..'));
        }

hope it may solve your problem

Upvotes: 3

Related Questions