PHP工房トップ

HOME > PHP5.3以降で一度にPOSTできる上限数を変更する

PHP5.3以降で一度にPOSTできる上限数(max_input_vars)を変更する

PHP5.3以降の場合(マニュアルでは5.3.9以降となっていますが、なぜか5.3.3でも存在する)、1度にPOST出来る数に上限が設けられています。
具体的にはphp.iniの設定で「max_input_vars」が追加され、デフォルト値が「1000」となっています。

これはformタグ内のinputタグなどでPOSTできる上限を意味しますので、
1000以上のPOSTデータ(inputタグなど)があった場合、1000を超えた分は無効化されてしまいます。

まぁ1度に1000を超えるPOSTが発生するシステムはあまり現実的ではありませんが、
当サイトで配布している「カレンダーフォーム」についてのみ、予約時間のリストが「15」以上設定の場合に、この1000を超えてしまいます。

対処法としては、リストを15未満に設定するかphp.iniの設定を変更するかのいずれかです。
※PHP5.2以下にすることも考えられますが、あまりスマートな方法とは言えません。

現在の設定内容を確認する

まずはphpinfoで現在の設定値を確認します。変更後の値のチェックのためにも必要な作業です。
以下ページよりinfo.phpをダウンロードして、サーバーにアップしてブラウザでアクセスして下さい
http://www.php-factory.net/trivia/05.php

その上でページ検索で以下を見つけて下さい。(Ctrl+Fでページ内検索できます)
max_input_vars

おそらく値が「1000」に設定されているはずです。
もし見つからない場合には、PHP5.3未満なのでしょう。ページの一番上にバージョンが表示されるはずです。

php.iniの変更方法

方法としては、htaccessファイルで変更する方法、php.ini(user.ini)ファイルを設置する、サーバー管理画面などでphp.iniを直接編集する、などがあります。
まぁ設定する数値はなんでも構いませんが、10000くらいにすれば間違いないでしょう。

htaccessファイルの場合

以下を記述したhtaccessファイルを適用したいディレクトリ内に設置します。
※ただし、サーバーでhtaccessによる変更が許されている場合のみです。許可されていない場合、サイトが表示されないなどが発生しますので、その場合、すぐに削除して下さい。

php_value max_input_vars 10000

php.iniの場合

サーバーにより管理画面から直接php.iniを変更できるもの(エックスサーバーなど)、php.iniファイルを設置して対応するものなど(さくらサーバなど)、サーバーにより異なりますが記述方法は同じです。

max_input_vars = 10000

変更内容を確認する

上記で設置したinfo.phpのページを更新して確認してみてください。
1000→10000になっていればOKです。
逆に変わっていない場合には変更方法が誤っているということになります。
サーバーによってはそもそもphp.iniの設定変更を許可していない可能性もあります。
その場合、「php.iniを変更したいんですが・・・」と問い合わせてみましょう。まとまなサーバーであれば適切な回答があるでしょう。

「うちはできないんです・・」というようなサーバーはとっとと乗り換えましょう。

 

 

 

PHPメールフォーム(無料版)

PHPメールフォーム(有料版)

新着情報・更新履歴CMS(無料版)

投票・アンケートシステム(無料版)

テロップCMS(無料版)

写真ギャラリーCMS(無料版)

営業日カレンダーCMS(無料版)

営業日カレンダーCMS(有料版)

カレンダー予約フォーム(無料版)

カレンダー予約フォーム(有料版)

リンク集ページCMS(無料版)

アクセスカウンター(無料版)

ダウンロードカウンター(無料版)

メールフォームの各種カスタマイズならお任せ下さい
業務効率化が可能なPHPオリジナルCMS制作します

役立つかも?なもの

豆知識や役立ち事など

PHPについて

各種情報