HTTPメソッド
フォームやブログの投稿などで、データを取得する際に使うのがHTTPメソッドです。
PHPで使うHTTPメソッドは次の二つです。
- ・GET
- ・POST
GET
GETは送るデータをURL内に含めることによって、データを送ります。
POST
POSTはデータをHTTPリクエストの本文に含めることによって、データを送ります。
メソッドの使い分け
では、GETとPOSTはどのように使い分ければ良いのか解説します。
単にデータを取得したい場合には、GETを使います。
ただ、GETはURLにデータを含めることによって、データを取得していますので、仮にパスワードやユーザー名などのような他の人に見られては困るようなものは、GETで取得するべきではないです。
POSTは、データを更新したい場合、GETでは困るようなパスワードやユーザー名などのデータを取得する場合に使います。POSTは、HTTPリクエスト本文に含めるので、他人に見られることはないです。
スーパーグローバル変数
HTTPメソッドとも関わってくるスーパーグローバル変数について、紹介します。
スーパーグローバル変数とは、様々なデータを格納し、それらをどこからでも
参照することができる変数です。
スーパーグローバル変数は、9つあります。
- ・$_GET
- ・$_POST
- ・$_FILE
- ・$_COOKIE
- ・$_REQUEST
- ・$_SERVER
- ・$_ENV
- ・$_SESSION
- ・$_GROBALS
$_GET
GETメソッドで、送られたデータを格納します。また、GETメソッドを使っていなくても、
URLにデータが含められていれば、そのデータを格納します。
$_POST
POSTメソッドで、送られたデータを格納します。
$_FILE
POSTメソッドで、ユーザが画像をアップロードした際に、ファイルのデータを格納します。
ファイルのデータは、「ファイル名」、「サーバ上でのパス」、「形式」の三つです。
$_COOKIE
HTTPはステートレス(状態を保たない)なので、ブラウザ側でデータを保持しておく
クッキーという仕組みを用います。PHPでは、$_COOKIE変数に「キー」と「値」の連想配列としてデータを格納することによって、クッキーを実現します。
$_REQUEST
GETメソッド、POSTメソッド、クッキーのデータすべてを格納します。
それぞれのデータは、GETメソッド→POSTメソッド→クッキーの順番で読み込まれます。
データが、GETとPOSTで重複した場合には読み込まれる順番で上書きされます。
また、この順番は設定ファイルで変更可能です(推奨しないです)。
GET,POST,クッキーのそれぞれに変数が存在しますので、$_REQUEST変数を使う必要は
ほとんどないと思います。
$_SERVER
SERVERの様々なな情報を格納します。
$_ENV
環境変数が格納されます。
$_SESSION
Webサーバにデータを保持する際に、セッションを用います。通常、セッションの値を識別するためのセッションIDをクッキーでブラウザが保持し、値をWebサーバが保持します。
$_SESSION変数では、セッションIDと値が連想配列として格納されています。
$_GROBALS
グローバルスコープの変数が格納されます。
コメント