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以下にすることも考えられますが、あまりスマートな方法とは言えません。

追記 
【Calendar02】、【Calendar03】 の場合でも管理画面の表示月数を以下の設定より多く設定した場合にこの上限に達してしまいます。

【Calendar01】= 基本的には問題となりません。(少なくとも2~3年程度まではOKです)
【Calendar02】= おおよそ14ヶ月以上
【Calendar03】= おおよそ7ヶ月以上

そのためこの表示月数以下としていただく必要がございます。
どうしてもこの表示月数以上に設定されたい場合はサーバーのphp.iniの設定値を変更する必要がありますので、以下を参考に設定変更下さい。

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

まずは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ファイルの場合

以下1行を記述したhtaccessファイルを適用したいディレクトリ内に設置します。
※ファイル名は当然「.htaccess」です。(ローカルではこのファイル名を付けれないと思うのでサーバーにアップしてからリネームします)
※htaccessファイルは設置した階層以下にのみ適用されます。
※ただし、サーバーでhtaccessによる変更が許されている場合のみです。許可されていない場合、サイトが表示されないなどが発生しますので、その場合、すぐに削除して下さい。

php_value max_input_vars 10000

※ロリポップの場合、デフォルトの状態ではhtaccessによる変更が許可されていません。
有効にするにはサーバー管理画面(ユーザー専用ページ)の「php.iniの設定」にて「php_value, php_flagを利用可能にする」をONにします。

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について

各種情報