POST送信の要求を処理する

 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

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>POST受信</title>
  6. </head>
  7. <body>
  8. <?php
  9. var_dump($_POST);
  10. ?>
  11. </body>
  12. </html>

○ 解説

 9行目で、$_POST変数のデータを表示しています。このページに直接アクセスすると$_POST変数は空になります。今回は、次のHTMLファイルを作成し、そのWebページからデータを渡して、このファイルを呼び出すようにしましょう。

○ ファイル

 「GetFromFormTest.html」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください

ファイルの種類 HTMLファイル
ファイル名 POSTForm.html

サンプルダウンロード

○ プログラム

 次のようにプログラムを記述してください。

POSTForm.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>POST送信フォーム</title>
  6. </head>
  7. <body>
  8.  <form action="POSTTest.php" method="POST">
  9.   フルーツ:
  10.   <input type="text" name="fruit">
  11.   <br>
  12.   食べ物:
  13.   <input type="text" name="food">
  14.   <br>
  15.   <input type="submit">
  16.  </form>
  17. </body>
  18. </html>

○ 実行結果

実行結果
実行結果

○ 解説

 8行目で、Formタグを指定しています。送信先に「POSTTest.php」、送信方法をPOSTとしています。クエリ送信ボタンをクリックすると、Formタグ内の入力データがリクエストにセットされ、送信されます。「POSTTest.php」でその内容を$_POST変数に格納されるため、データが受信されたことを確認できます。

前へ   次へ