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を使う。