web-dev-qa-db-ja.com

PHPで最大POST変数を増やすには?

ローカルマシンでWAMPを使用しています。2000個の入力フィールドを持つFORM(method = "POST")が送信されると、1001 _POST変数のみを読み取ることができます。つまり、Netbeansデバッガーでは、フォームに1001を超える入力フィールドがある場合、_POSTサイズは常に1001であることが明確にわかります。

これを使用しました http://ideone.com/GAw14 Java N個の入力フィールドを持つフォームを生成するコードをテストしました。

同じことが別のマシン(WAMP)でもうまく機能し、すべてのPOST変数を見ることができます。

私の問題を解決するのを手伝ってください。

41

PHP 5.3.9では、max_input_vars configオプションが導入されました。このオプションのデフォルトは1000です。=の Runtime Configuration セクションを確認してください。 PHP manual。デフォルト値と変更ログはページの上部にあります。

サーバーのphp.iniを更新する、.htaccessファイルを追加する、または httpd.conf に行を追加することにより、値を変更できます。

84
lightster

Hardened PHPで Suhosin を使用している場合、それが課す最大変数制限に達している可能性があります。 php.iniに追加するだけです

[suhosin]
suhosin.request.max_vars = 1000
suhosin.post.max_vars = 1000

1000を必要なものに変更し、ウェブサーバーを再起動します。

Drupal Permissionsページで、多数のロールを持つ多数のモジュールがインストールされていたため、大量のチェックボックスが表示されました。特定の数だけが保存されました。何かが始まる前に無視されます。

これはおそらくあなたの問題ではないようですが、関連するものを検索するときに将来誰かがこれにつまずく可能性が高いので、私は困惑したときに把握するのに年齢がかかったので、先に進んでこれを投げます。

18
jprofitt

以下をphp.iniに追加して、$ _ POSTの最大入力の問題を解決しました。

max_input_vars = 5000
suhosin.request.max_vars = 5000
suhosin.post.max_vars = 5000

Suhosin.request.max_varsにも注意してください。

8
JaPeK

この問題を解決しました。 PHP.INI構成ファイルを開き、これらの行を追加します

[スホシン]

suhosin.post.max_vars = 20000

suhosin.request.max_vars = 20000

1
Robson Mtos