post送信した内容がかける[max_input_varsの設定]
post送信した内容をPHPで取得すると項目数が少ない!
この問題は過去の案件でも何度かあったんですが、想定していたpost数よりも多くpostしていることがあり、過去の案件のお客様からのご連絡で判明することがありました。
postの項目数をなるべく少なくしてプログラムを組まなきゃいけないんですが、どうしてもこの制限を超えてしまうことがあります。
内容の確認・設定の仕方をまとめておきたいと思います。
現在の設定の確認
max_input_varsはPHP5.3.9から導入されたらしいんですが、5.3.3でもこの制限にひっかかることがあります。
デフォルトでは1000に設定されていました。
まず現在の設定を確認しましょう。
通常php.iniにデフォルト値が書いてありますが、5.3.3ではphp.iniに書いてありませんでした。
てっとり早い方法はinfo.phpを作成してサーバーにアップロードしてアクセスしてください。
現在の設定が表示されたらmax_input_varsという項目を探します。
info.php
phpinfo();
※レンタルサーバー上にある場合はレンタルサーバーのコンパネでphp.iniの設定を見れるところが多いのでそこで探すのも方法の一つです。
max_input_varsの変更
ここでは2種類の設定方法をご紹介いたします。
.htaccessで設定
php_value max_input_vars 2000
php.iniで設定
max_input_vars = 2000
値が変更されたか確認
上記内容で値を変更した場合は再度info.phpにアクセスして値が更新されていることを確認してください。
まとめ
postの項目数が少ないにこしたことはありません。
なるべく項目数が少なくシステムが稼働するように組むことは原則です。
ですが、案件や内容によってはどうしても1000件を超えてしまう場合はあると思います。
その場合は納品前にmax_input_varsの件数をもともと増やしておくことをおすすめします。