POST送信は、リクエストにデータを内包させてデータを送ります。主にHTMLフォームに入力した情報や、ファイルのアップロードなどで利用します。
大量のデータをサーバーに送信することもできますが、サーバーの設定で受け入れるデータのサイズを制限することができます。処理するデータの多さによってはこの制限を解く必要があるかもしれません。「php.ini」ファイルの次の設定を変更します。
設定名 | 内容 |
---|---|
memory_limit |
デフォルト:128M PHPスクリプトが確保できる最大メモリをバイト数で指定する。無制限にする場合は「-1」を指定する |
post_max_size |
デフォルト:8M POSTデータで許可する最大サイズを指定する。ファイルアップロードにも関係する設定。memory_limitはこの設定値より大きくしておく必要がある |
max_input_vars | POST(GET)送信のデータを格納する変数の最大個数を指定する |
PHPプログラムでは、リクエスト内にある送信されたデータを「$_POST」変数に格納して扱います。その変数は連想配列になっていて、「データ名」の要素名が割り当てられます。
HTMLフォームからPOST送信されたデータを受信して、データを確認してみましょう。
○ ファイル
「GetFromURLTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。
ファイルの種類 | PHPファイル |
---|---|
ファイル名 | POSTTest.php |
○ プログラム
次のようにプログラムを記述してください。
POSTTest.php
○ 解説
9行目で、$_POST変数のデータを表示しています。このページに直接アクセスすると$_POST変数は空になります。今回は、次のHTMLファイルを作成し、そのWebページからデータを渡して、このファイルを呼び出すようにしましょう。
○ ファイル
「GetFromFormTest.html」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください
ファイルの種類 | HTMLファイル |
---|---|
ファイル名 | POSTForm.html |
○ プログラム
次のようにプログラムを記述してください。
POSTForm.html
○ 実行結果
○ 解説
8行目で、Formタグを指定しています。送信先に「POSTTest.php」、送信方法をPOSTとしています。クエリ送信ボタンをクリックすると、Formタグ内の入力データがリクエストにセットされ、送信されます。「POSTTest.php」でその内容を$_POST変数に格納されるため、データが受信されたことを確認できます。