フォームでPOSTされない時の対処方法 - php.ini max_input_varsの設定

2014/01/06

フォームでPOSTされない時の対処

概要

PHPで作成されたフォームでPOST送信したときに、取得側でデータが全て取得できない。
しかしプログラムは間違っていない。誤字脱字もない。。。
そんなときは、たいていPHPの設定による不具合です。

このようなときは、下記の設定を確認してみてください。

max_input_vars
max_file_uploads
memory_limit
post_max_size
upload_max_filesize

送信するデータが、これらの設定値を超えているため正しく送信できない可能性があります。
当記事では、これらの設定方法を紹介しています。

php.iniの設定方法

ファイルのパス

php.iniは以下の場所にあります。

[CentOS]
/etc/php.ini
[FreeBSD]
/usr/local/etc/php.ini
[MacOS]
/etc/php.ini

なければ、以下のようにしてコピーして作成します。


cp php.ini-production /etc/php.ini

max_input_vars

入力変数を最大何個まで受け入れるかを指定します。
例えば、1000と設定していた場合に1200の変数を送信した場合は、1000まで取得してそれ以降のデータはリクエストから削除されます。

max_input_varsは、PHP 5.3.9 以降で有効となります。

[設定例]


max_input_vars = 2000

max_file_uploads

同時にアップロードできるファイルの最大数を指定します。
例えば、20と設定していた場合に30のファイルのアップロードを試みた場合は、20までアップデートされ、それ以降のファイルはリクエストから削除されます。

何もファイルを指定せずに送信されたフィールドは、数に含みません。
max_file_uploadsは、PHP 5.2.12 以降で利用可能となります。

[設定例]


max_file_uploads = 30

memory_limit

使用できるメモリの最大値を指定します。
post_max_size、upload_max_filesizeより大きな値を設定する必要があります。

「memory_limit > post_max_size > upload_max_filesize」このようになっていないと意味がありません。
例えば、post_max_sizeで200Mと設定していてもmemory_limitが100Mとなっていたら、結果メモリが100Mしか使えないのでPOSTできる容量も100Mまでとなるためです。

[設定例]


memory_limit = 256M

post_max_size

POSTデータの最大サイズを指定します。
この値は、ファイルのアップデートも含みます。

大きなファイルをアップデートする場合、この値はupload_max_filesizeより大きな値を設定する必要があります。

[設定例]


post_max_size = 126M

upload_max_filesize

アップロードするファイルの最大サイズを指定します。
複数のファイルをアップロードする場合は、そのファイルの合計サイズが対象となります。

[設定例]


upload_max_filesize = 96M
  • このエントリーをはてなブックマークに追加
Related

PHP Laravel5.2でmulti-auth(複数テーブルでの認証)を実装

Laravel5.2でマルチ認証 概要 LaravelとはPHPの中で今最も伸びているフレームワークです。 処理速度が遅いなどありますが、かなり使い安く拡...

PHP 正規表現でIPアドレス形式の文字列か判定

正規表現でIPアドレスの入力チェック 概要 フォームで入力されたIPアドレスが正当な文字列か判定するためのバリデーション処理を実装します。 基本的...

rbenv環境でRuby on Railsのアプリケーションを一瞬で自動生成

アプリケーション構築時に最初に行う手順 概要 アプリケーションを作成するまでの手順を記載しています。 rbenvなどの環境が設定済と仮定して話を進めま...

Rails devise・authority・rolifyで権限付きの認証機能

devise・authority・rolify 概要 3つのGemを使用して、権限付き認証機能を実装します。 gem インストール Gemfile ...

Rails devise で複数モデルの認証機能を実装

Rails devise で複数モデルを管理 概要 rails のログイン認証 Gem「devise」のインストール・設定方法を紹介します。 よく「d...

jQuery UI ドラッグ&ドロップで並び替え sortableの使用方法

sortable 概要 jQuery UIを使用して、ドラッグ&ドロップで並び替えを行います。 sortableを使用することで、一瞬で実装できちゃいます...
トップへ戻る