Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why get Unable to verify your data submission error in Yii2?

Tags:

yii2

enter image description here

Error:

Unable to verify your data submission error

Create one public function in Yii2. But, submit data not accept in this method, see following error images. Why is this happen?

like image 437
Bharat Chauhan Avatar asked Oct 20 '14 06:10

Bharat Chauhan


5 Answers

If you create the form manually (i.e. without using the yii form methods), you should add an input field like this:

<input type="hidden" name="_csrf" value="<?=Yii::$app->request->getCsrfToken()?>" />

source: http://zero-exception.blogspot.com/2015/01/yii2-using-csrf-token.html

like image 152
dchakarov Avatar answered Oct 14 '22 20:10

dchakarov


Add this in the head section of your layout: <?= Html::csrfMetaTags() ?>

like image 26
WCO Avatar answered Oct 14 '22 21:10

WCO


There are various solutions to this problem, I guess understanding why it happened in the first place helps solve the problem.

  1. It is either caused by an invalid csrf token,user generated csrf token, expired csrf token, all these 'csrf' issues will arise when you have custom forms built not using the 'ActiveForm' class.

If CSRF is not the issue,

  1. Its other cause occurs when you try to upload multiple files and the web server cannot handle the load. Some properties to check on this to make sure you are on the right track is to claculate the size of files one is attempting to upload and check the web server's post_max_size and upload_max_filesize

If you are running linux, check php.ini file for inputs like these:

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data    reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 8M

; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M

Based on your calculations, adjust the above php.ini parameters to suite your needs, then test. I had a similar problem and I solved it.

like image 17
Amos Kosgei Avatar answered Oct 14 '22 19:10

Amos Kosgei


To permanently disable csrf validation in whole application add below code in your configurations.

$config = [
    'components' => [
        'request' => [
            'enableCsrfValidation' => false,
        ],
    ],
];
like image 6
curious_pawn Avatar answered Oct 14 '22 21:10

curious_pawn


Also sometimes you can get this error using Yii 2.0 due to the post_max_size, upload_max_filesize, max_input_time also too maybe the webserver can be trimming the post so verify on nginx - client_max_body_size or in apache - LimitRequestBody

like image 4
Bruno de Oliveira Avatar answered Oct 14 '22 21:10

Bruno de Oliveira