2016-07-25 25 views
3

1つのPHPページのPHP max_input_vars制限を増やす方法はありますか?私はCSVのアップロードと抽出機能を使用しています。 csvデータはInsertクエリを使用してdbに保存されます。1つのPHPページのMax_input_vars制限を増やす

PHPの警告:不明:入力変数は、php.iniの制限変更max_input_varsを高めるために1000を超えて、私は、例えば、約9000のエントリのような大きなCSVデータをしようとしたときしかし、私はこのようなエラーが発生しました。

私は、php.iniまたは.htaccessで制限値を変更する必要があることは知っていますが、セキュリティを維持するためのプロジェクト全体の制限を変更する必要はありません。だから、この機能だけを変更する方法はありますか?

+0

あなたはCSV形式のファイルを使用している場合は、なぜ使用しない[ 'LOADのDATA'](http://dev.mysql.com/doc/refman/5.7/en /load-data.html)をインポートするには?それは巨大な声明よりも面倒ではありません。 – tadman

答えて

3

これを行う方法はありません。 php.iniファイルで変更する必要があります。ini_setも変更できないためです。

max_input_varsそれはini_set(のみphp.iniで、.htaccessファイルまたはhttpd.confの)を使用して変更することはできません意味PHP_INI_PERDIRの変更モードを持ってい

Source

ますただし、この設定を一時的に変更するには、.htaccess

php_value max_input_vars 3000

Source

+0

Martin S .:はい。実際に私はこの入力値について少し混乱しています。マルチ選択ドロップダウンにほぼ9000のエントリが含まれている場合、このエラーが発生します。 Postでは、selectオプションの値を1つのinput要素に配列として渡します。これは選択要素の名前です。あなたはこのmax_input_varsの制限について何を記述してください? POSTで渡すことができる入力要素の数ですか?それが私の選択ドロップダウンがなぜそのエラーを示しているのか? – Zammuuz

+0

@ USER5615各スーパーグローバルで許可される変数の量です。コードを表示しないとなぜエラーが出るのか分かりませんが、POST経由であまりにも多くの変数を渡しているようです。 – Martin

+0

大きなマルチ選択がこの問題を引き起こす理由は、選択された各オプションが 'fieldname [] = value'として渡されるからです。これは、フォームフィールドとほとんど同じように見えます。データを解析して変数にロードする際、これは配列として扱われますが、各代入は引き続き1つの「入力変数」としてカウントされます。 – PaulC

関連する問題