2016-05-31 5 views
0

私は自分のフォームで

<input type="checkbox" name="course_id[]" value="xxx"/> 

多くを持っています。しかし、$_POST['course_id']には値の一部しか提出されていません。

は例えば、私はcourse_id[]=1&course_id[]=2&course_id[]=3&course_id[]=4投稿けど$_POST['course_id']は1000以上のcourse_idsが掲載されているだけでおよそ990 course_idsは$_POST['course_id']にある現実の状況で["1","2","3"].

です。

私はtsharkによってHTTPパッケージを取得し、course_id []のすべての値がPHPに送信されていることを確認しました。

PHPバージョンはPHP構成において5.5.9

+0

Firefox用のライブhttpヘッダーを使用してください。 –

+0

@PedroLobitoサーバーでHTTPパッケージを取得して、すべての値をサーバーが受信したことを確認しました。 – Firas

+0

@JeffPuckettIIエコーjson_encode($ _ POST ['course_id']) – Firas

答えて

0

私はあなたに実行している問題は、私はあなたが、あなたの990 course_ids 10個の他のパラメータを送信していると思うそのデフォルト値に設定されているmax_input_vars、1000です疑います最大1000の制限。その上限を超えて、1000以上のパラメータを送信することができます。

詳しくは、マニュアルのページhttp://php.net/manual/en/info.configuration.php#ini.max-input-varsを参照してください。マニュアルから

多くの入力変数が受け入れられる方法
Name   Default Changeable  Changelog 
max_input_vars 1000 PHP_INI_PERDIR Available since PHP 5.3.9. 

は(上限は$ _GET、$ _POSTおよび$ _COOKIEスーパーグローバル個別に適用されます)。このディレクティブを使用すると、ハッシュコリジョンを使用するDoS攻撃の可能性が軽減されます。このディレクティブで指定されたより多くの入力変数がある場合は、E_WARNINGが発行され、さらに入力変数が要求から切り捨てられます。

は、しかし心の中で、この設定の目的を保管してください:このディレクティブの

使用すると、サービス拒否攻撃の可能性を軽減します。

0

で、POSTは、特定のサイズに制限されます。コースの数に応じて、おそらくあなたはその限界に達しました。 あなたは、この値を確認することができますpost_max_size

参考:http://php.net/manual/en/ini.core.php#ini.post-max-size

+0

" post_max_size "を元の8倍にするが、状況は変わらない。 – Firas

+0

OK、未チェックの価値があると思いますか?それは送信されません。チェックされた値のみが送信されます – sonique

+0

問題は、PHPがtsharkによって捕捉可能なチェックされた値を削除することです – Firas

関連する問題