[PHP入門]HTTPメソッドとスーパーグローバル変数

スポンサーリンク

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
グローバルスコープの変数が格納されます。

コメント

タイトルとURLをコピーしました