php max_input_vars makes you lose form values
ie(11) でのみ form で送られるべき値が送られてこないということが起きた。
最初は js のバグかと思っていたが、php の設定が問題だった。
【php】max_input_varsの影響でフォームの値を全部受け取れないことがある at softelメモ
問題
フォームから送信した値が、サーバー側(php)で取得できない。
プログラムは動いてるみたいなんだけど、あるはずの $_REQUEST[‘hoge’] などがないみたい。
どうなってるのこれ?
答え
以下の条件に当てはまるようなら、phpのmax_input_varsの設定値の影響かもしれない。
...
max_input_vars integer
入力変数を最大で何個まで受け付けるかを指定します
(この制限は、スーパーグローバル $_GET、$_POST そして $_COOKIE にそれぞれ個別に適用されます)。
対象サーバーの max_input_vars
は 150 だったので、300 まで上げた。
解決した。
それにしても ie(11) だけで起こった理由がわからない。
他のブラウザよりも多くのフォーム値を送信しているということ?
同じ実装ではないが、次のような記事を見つけた。
inputタグのonclickでform.submit()を実行しているため、IEだけ二重にリクエストが送信される時の対処法
この対処法は自分の場合は有効でなかった。
とりあえず、max_input_vars
の値には気をつける。