第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送信で送られている情報になります。
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”>)
① フォームタグを使用して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を使うと行える。