第7章 フォームデータの扱い方

7.2 Webサーバへデータを送る方法

Webブラウザからの入力データをWebサーバへ送るための2つの送信方法である「GET送信」「POST送信」について本節で学習していきましょう。

7.2.1 GET送信とPOST送信の違い

GET送信とPOST送信には明確な違いがありますので、その違いについて説明していきます。

GET送信

入力されたフォームデータをURLの後ろに含めて、サーバへ送信する方式になっています。
http://www.google.co.jp/search?aq=f&sourceid=chrome&ie=UTF-8&q=google
上記のURLのように「?」記号の後のデータがGET送信で送られている情報になります。

POST送信

Webサーバへ送るデータ本体に、入力されたフォームデータを含めて送信する方式になっています。
POST送信ではGET送信と違いURLの後ろに含めないので、データが送られているかは目に見える形では分かりません。

この2つの送信はただ方式が違うだけではありません。POST送信と違いGET送信ではURLに含めてデータを送信するので、大量のデータを送信することができません。またURLに送信データが見えてしまうので、セキュリティー面でも注意が必要になってきます。特に理由が無い場合は、POST送信を利用してデータを送るほうが良いでしょう。

7.2.2 HTMLからのデータを送信する時の指定方法

HTMLで送信方法を指定する場合は、以下の3つの方法があります。

GET送信でデータを送信する場合のHTMLでの指定方法

① ブラウザのアドレスバーから直接URLを入力する方法。(ダイレクトアクセス)
② リンクタグを使用する方法。(<a href=”URL?XX=xx&…” >)
③ フォームタグを使用してmethod属性をgetにする方法。(<form action=”URL” method=”get”>)

POST送信でデータを送信する場合のHTMLでの指定方法

① フォームタグを使用してmethod属性をpostにする方法。(<form action=”URL” method=”post”>)

上記で示した通り、POST送信は<form>タグのmethod属性をpostに指定した場合にしか設定できません。GET送信はフォームもしくはリンクから指定した2つの場合にGET送信になります。この3つのパターンをしっかり覚えておけばPHPプログラミングでは問題ありません。

7.2.3 送られてきたデータをPHPで利用する方法

PHPでは送信元からのデータを受け取って利用するには、5章で学習したスーパーグローバル変数を利用すれば簡単に行えます。

  • GET送信はスーパーグローバル変数$_GETを利用して取得
  • POST送信はスーパーグローバル変数$_POSTを利用して取得


図 7.2.1:データ送信方法と取得方法の関係

Web画面からの入力データを受け取る方法については、次の節でやっていきますので本節で学習したことを覚えておいてください。表7.2.1に今回学習した送信方式に関してまとめたもの示します。

表 7.2.1:GET送信とPOST送信まとめ

ポイント
  • Web画面からのデータをサーバへ送る送信方法にはPOST送信とGET送信がある。
  • HTMLでGET送信を指定する方法は、リンクとフォームの2種類で行える。
  • HTMLでPOST送信を指定する方法には、フォームのみで行える。
  • PHPでGET送信で送られてきたデータを取得するには、スーパーグローバル変数$_GETを使うと行える。
  • PHPでPOST送信で送られてきたデータを取得するには、スーパーグローバル変数$_POSTを使うと行える。

NEXT>> 7.3 画面からの入力データを扱う