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


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

 Webブラウザからの入力データをWebサーバへ送るための方法はいくつかありますが、代表的な「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で送信方法を指定するには、GET送信とPOST送信でそれぞれ以下のような方法があります。

 GET送信でデータを送信する場合のHTMLでの指定方法
  ① リンクタグを使用する方法。(<a href=”URL?name1=value1&…” >)
  ② フォームタグを使用してmethod属性をgetにする方法。(<form action=”URL” method=”get”>)

 POST送信でデータを送信する場合のHTMLでの指定方法
  ① フォームタグを使用してmethod属性をpostにする方法。(<form action=”URL” method=”post”>)

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


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

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

 ・ GET送信で送られるデータはスーパーグローバル変数$_GETを利用して取得
 ・ POST送信で送られるデータはスーパーグローバル変数$_POSTを利用して取得

 Web画面からの送信データは、PHPの特別な変数である「スーパーグローバル変数」に格納されるようになっています。また、送信データの格納方法は、6章で学習した部品名を文字列キーとした「連想配列」で管理されています。データを連想配列に格納する処理は、PHPの内部処理で自動で行ってくれます。

図 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 画面からの入力データを扱う