PHPスーパーグローバル変数とRegister_Globals
PHPには、スーパーグローバルと呼ばれる特別な種類の変数があります。これらの変数が特別な理由は、プログラマーが自分のプログラムで変数を作成または定義することなく、PHPプログラムで自動的に使用できるためです。それらは「組み込み」変数と考えることができます。

これらの変数にアクセスする方法は、サーバーでregister_globalsがオンになっているかオフになっているかによって異なります。 PHPバージョン4.2より前は、register_globalsはデフォルトでオンになっていました。ただし、セキュリティ上の理由によります。現在、この設定はデフォルトでオフになっています(バージョン4.2以降)。もちろん、デフォルト設定をオーバーライドしてregister_globalsをオンにするかどうかを決定するのは、サーバーを実行する人次第です。独自のサーバーをテストする最も簡単な方法は、phpinfo()を使用することです。 Webサイトの管理領域に、このWebページへのリンクがある可能性があります。このWebページには、この情報を含むConfiguration PHP Coreセクションがあります。

上記のように、サーバーの設定に応じてスーパーグローバルに異なる方法でアクセスします。新しいサーバーのセットアップでは、スーパーグローバルに新しい名前が付けられました。サーバーに古い設定が残っている場合は、とにかく新しい名前の使用を開始することをお勧めします。これらの新しい名前を使用すると、プログラムが両方のサーバー構成で動作することを確認できます。ただし、これは古い名前には当てはまりません。古いサーバー構成でのみ機能します。以下の図は、古い名前と新しい名前、およびスーパーグローバルの説明を示しています。これらのスーパーグローバルの名前はすべて大文字であることに注意してください。

新着古い説明
$ _GET $ HTTP_GET_VARS このスーパーグローバルには、ゲリー文字列などのgetメソッドによってプログラムに送信される変数が含まれます。
$ _POST $ HTTP_POST_VARS このスーパーグローバルには、postメソッドによってプログラムに送信される変数が含まれます。
$ _COOKIE $ HTTP_COOKIE_VARS このスーパーグローバルには、Cookieからプログラムで使用可能な変数が含まれています。
$ _SESSION $ HTTP_SESSION_VARS このスーパーグローバルには、セッションを介してプログラムによって登録された変数が含まれます。
$ _FILES $ HTTP_POST_FILES このスーパーグローバルには、ファイルのアップロードから使用可能な変数が含まれています。
$ _ENV $ _HTTP_ENV_VARS このスーパーグローバルには、サーバー環境から利用可能な変数が含まれています。
$ _REQUEST -- このスーパーグローバルには、あらゆるタイプのユーザー入力によってプログラムに送信される変数が含まれます。これは、最も一般的または普遍的なタイプのスーパーグローバルです。
$ _SERVER -- このスーパーグローバルには、ファイルパスなどのサーバーに関する情報が含まれています。