PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Thursday, December 30, 2021

[FIXED] Yii2 - Bad Request (#400) Unable to verify your data submission

 December 30, 2021     php, yii, yii2     No comments   

Issue

My yii2 application was working fine till yesterday however today on submiting form it is showing error. "Bad Request (#400) Unable to verify your data submission.".

I found many such questions on stackoverflow, where people are suggesting to disable csrf validation i tried disabling csrf validation also. i even updated my composer still it is not working.

please suggest any other possible solution.

This is my form code :-

<h2>Open an Account</h2>
                  <?php
                    $form = ActiveForm::begin([
                            'id' => 'live-account-form',
                            'enableClientValidation' => true,
                            'fieldConfig' => [
                                'template' => '{input}{error}',
                                'options' => [
                                    'tag' => false,
                                ]
                            ],
                            'options' => [
                                'class' => 'form-horizontal'
                            ]
                        ]);
                  ?>

                  <div class="form-group">
                    <label for="signupform-first_name" class="col-sm-3 control-label">First Name*</label>
                    <div class="col-sm-9 field-signupform-first_name">
                        <?= $form->field($model, 'first_name')->textInput(['placeholder' => "Enter First Name"]) ?>  

                    </div>
                  </div> 

                  <div class="form-group">
                    <label for="singupform-last_name" class="col-sm-3 control-label">Last Name*</label>
                    <div class="col-sm-9 field-signupform-last_name">
                        <?= $form->field($model, 'last_name')->textInput(['placeholder' => 'Enter Last Name']) ?> 
                    </div>
                  </div>   

                  <div class="form-group">
                    <label for="signupform-email" class="col-sm-3 control-label">Email*</label>
                    <div class="col-sm-9 field-signupform-email">
                        <?= $form->field($model, 'email')->textInput(['placeholder' => "Enter Email Address"]) ?>
                    </div>
                  </div>

                  <div class="form-group">
                    <label for="signupform-country" class="col-sm-3 control-label">Country*</label>
                    <div class="col-sm-9 field-signupform-country">
                        <?= $form->field($model, 'country')->dropDownList(
                            ArrayHelper::map(PhCountry::find()->all(), 'intid', 'country_name'),
                            [
                                'prompt' => 'Select Country',
                                'onchange' => '$( "select#signupform-country_code" ).html("showLoading");
                                    $.get( "index.php/site/fetch-country-code?id='.'"+$(this).val(), 
                                    function(data) {
                                        $( "#signupform-country_code" ).val(data);
                                    });'
                            ]
                        ) ?>
                    </div>
                  </div>

                  <div class="form-group">
                      <label class="col-sm-3 control-label">Phone Number*</label>
                      <div class="col-sm-9 phone-number-div">
                        <div>
                        <?= $form->field($model, 'country_code')->textInput(['placeholder' => 'Code', 'class' => 'country-code form-control']) ?>
                        </div>
                        <div class="field-signupform-phone">
                        <?= $form->field($model, 'phone')->textInput(['placeholder' => 'Enter Phone Number', 'class' => 'enter-phone-number form-control']) ?>
                        </div>
                      </div>
                    </div>

                    <button type="submit" class="btn btn-default">Create Account</button>
                  <?php
                    ActiveForm::end();
                  ?>

and this is my action code inside controller:-

public function actionIndex()
{
    Yii::$app->controller->enableCsrfValidation = false;
    $model = new SignupForm();
    if ($model->load(Yii::$app->request->post())) {
        //print_r($model);
        if ($user = $model->signup()) {
            if($model->sendRegistrationEmail($user)) {
                Yii::$app->session->setFlash('emailSent', 'An email containing confirmation link is sent to your email Address.');
                if (Yii::$app->getUser()->login($user)) {
                    return $this->goHome();
                }    
            } 
        }
        //exit;
    }

    return $this->render('index', [
        'model' => $model,
    ]);
}

Solution

Use this :

public function beforeAction($action) 
{ 
    $this->enableCsrfValidation = false; 
    return parent::beforeAction($action); 
}

Do not disable CSRF



Answered By - Insane Skull
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing