PHP 4.1.0 以降、外部変数を取得する推奨される方法は、以下で説明するスーパーグローバル変数を使用することです。これ以前は、register_globals か、長い事前定義された PHP 配列 ($HTTP_*_VARS) に依存していました。 PHP 5.0.0 以降、長い形式の PHP 定義済み変数は register_long_arrays を設定することでマスクできます。
サーバー変数: $_SERVER
注: PHP 4.1.0 以降のバージョンで使用されます。以前のバージョンでは、$HTTP_SERVER_VARS が使用されていました。
$_SERVER は、ヘッダー、パス、スクリプトの場所などの情報を含む配列です。配列のエンティティは Web サーバーによって作成されます。すべてのサーバーがすべてのメッセージを生成するという保証はありません。サーバーは一部のメッセージを無視したり、以下にリストされていない新しいメッセージを生成したりする可能性があります。これは、これらの変数の多くが CGI 1.1 仕様で指定されているため、注意深く検討する必要があることを意味します。
これは「スーパーグローバル」、または自動グローバル変数として説明できます。これは、すべてのスクリプトで機能することを意味します。 $HTTP_SERVER_VARS を使用する場合と同様に、関数またはメソッド内でアクセスするためにグローバル $_SERVER を使用する必要はありません。
$HTTP_SERVER_VARS には同じ情報が含まれていますが、自動グローバル変数ではありません (注: $HTTP_SERVER_VARS と $_SERVER は異なる変数であり、PHP では異なる方法で処理されます)。
register_globals ディレクティブが設定されている場合、つまり $_SERVER 配列と $HTTP_SERVER_VARS 配列が分離されている場合、これらの変数はすべてのスクリプトでも使用できます。関連情報については、「レジスタ グローバルの使用」のセキュリティ関連の章を参照してください。これらの個々のグローバル変数は、自動グローバル変数ではありません。
以下にリストされている $_SERVER 要素の一部が使用できない場合があります。コマンドラインから PHP を実行する場合、以下にリストされている要素の一部は有効である (または実際の意味を持たない) ことに注意してください。
"PHP_SELF"
ドキュメントルートに関連する、現在実行中のスクリプトのファイル名。たとえば、URL アドレス http://example.com/test.php/foo.bar を持つスクリプトで $_SERVER['PHP_SELF'] を使用すると、結果は /test.php/foo.bar になります。 __FILE__ 定数には、現在の (つまり、ファイルを含む) ファイルの絶対パスとファイル名が含まれます。
PHP がコマンドラインから実行される場合、この変数は PHP 4.3.0 より前では効果がありません。
"argv"
このスクリプトに渡される引数。スクリプトがコマンド ライン モードで実行されると、argv 変数が C スタイルのコマンド ライン引数としてプログラムに渡されます。 GET メソッドが呼び出されると、この変数には要求されたデータが含まれます。
"argc"
プログラムに渡されるコマンド ライン引数の数が含まれます (コマンド ライン モードで実行している場合)。
"GATEWAY_INTERFACE"
サーバーが使用する CGI 仕様のバージョン。たとえば、「CGI/1.1」です。
"SERVER_NAME"
スクリプトが現在実行されているサーバーホストの名前。スクリプトが仮想ホスト上で実行されている場合、名前はその仮想ホストに設定された値によって決まります。
"SERVER_SOFTWARE"
リクエストに応答するときにヘッダー情報で指定される、サーバーを識別する文字列。
"SERVER_PROTOCOL"
ページをリクエストするときの通信プロトコルの名前とバージョン。たとえば、「HTTP/1.0」です。
"REQUEST_METHOD"
ページにアクセスする際のリクエストメソッド。例: 「GET」、「HEAD」、「POST」、「PUT」。
注: リクエストメソッドが HEAD の場合、PHP スクリプトはヘッダー情報の送信後に中止されます (これは、出力が生成された後は、出力バッファリングが存在しないことを意味します)。
"REQUEST_TIME"
リクエストが開始されたときのタイムスタンプ。 PHP 5.1.0 以降で有効です。
"QUERY_STRING"
クエリの文字列 (URL の最初の疑問符 ? の後の内容)。
"DOCUMENT_ROOT"
現在実行中のスクリプトが配置されているドキュメント ルート ディレクトリ。サーバー構成ファイルで定義されます。
"HTTP_ACCEPT"
現在のリクエストの Accept: ヘッダーの内容。
"HTTP_ACCEPT_CHARSET"
現在のリクエストの Accept-Charset: ヘッダーの内容。例: 「iso-8859-1,*,utf-8」。
"HTTP_ACCEPT_ENCODING"
現在のリクエストの Accept-Encoding: ヘッダーの内容。例:「gzip」。
"HTTP_ACCEPT_LANGUAGE"
現在のリクエストの Accept-Language: ヘッダーの内容。例:「エン」。
"HTTP_CONNECTION"
Connection の内容: 現在のリクエストのヘッダー。例:「キープアライブ」。
"HTTP_HOST"
Host の内容: 現在のリクエストのヘッダー情報。
"HTTP_REFERER"
現在のページにリンクされている前のページの URL アドレス。すべてのユーザー エージェント (ブラウザー) がこの変数を設定するわけではなく、一部のユーザー エージェント (ブラウザー) は HTTP_REFERER を手動で変更することもできます。したがって、この変数は常に真であるとは限りません。
"HTTP_USER_AGENT"
User-Agent: 現在のリクエストのヘッダー情報の内容。この文字列は、このページにアクセスするユーザー エージェントに関する情報を示します。典型的な例は次のとおりです: Mozilla/4.5 [en] (X11; U; linux 2.2.9 i586)。この情報は、get_browser() を使用して取得することもできます。
「HTTPS」
スクリプトが HTTPS プロトコル経由でアクセスされる場合は、空ではない値に設定します。
「REMOTE_ADDR」
現在のページを閲覧しているユーザーの IP アドレス。
"REMOTE_HOST"
現在のページを閲覧しているユーザーのホスト名。逆ドメイン名解決は、ユーザーの REMOTE_ADDR に基づきます。
注: この変数を作成するように Web サーバーを構成する必要があります。たとえば、Apache では httpd.conf で HostnameLookups On が必要です。 gethostbyaddr() を参照してください。
"REMOTE_PORT"
ユーザーがサーバーに接続するために使用するポート。
"SCRIPT_FILENAME"
現在実行中のスクリプトの絶対パス名。
注: スクリプトが CLI で file.php や ../file.php などの相対パスとして実行される場合、$_SERVER['SCRIPT_FILENAME'] にはユーザー指定の相対パスが含まれます。
"SERVER_ADMIN"
この値は、Apache サーバー構成ファイルの SERVER_ADMIN パラメーターを指定します。スクリプトが仮想ホスト上で実行されている場合、この値はその仮想ホストの値になります。
"SERVER_PORT"
サーバーが使用するポート。デフォルトは「80」です。 SSL セキュア接続を使用する場合、この値はユーザーが設定した HTTP ポートです。
"SERVER_SIGNATURE"
サーバーのバージョンと仮想ホスト名を含む文字列。
"PATH_TRANSLATED"
現在のスクリプトが配置されているファイル システムのベース パス (ドキュメント ルートではありません)。これは、サーバーが仮想パスから実際のパスにイメージ化された後の結果です。
注: PHP 4.3.2 以降、Apache 2 SAPI モードの PATH_TRANSLATED は、Apache 1 のように暗黙的に割り当てられなくなりました。代わりに、Apache がこの値を生成しない場合、PHP が自ら値を生成し、その値を SCRIPT_FILENAME サーバー定数に入れます。この変更は、PATH_INFO が定義されている場合にのみ PATH_TRANSLATED が存在するという CGI 仕様に準拠しています。
Apache 2 ユーザーは、httpd.conf で AcceptPathInfo On を使用して PATH_INFO を定義できます。
"SCRIPT_NAME"
現在のスクリプトへのパスが含まれます。これは、ページがそれ自体を指す必要がある場合に便利です。 __FILE__ には、現在のファイル (インクルード ファイルなど) の絶対パスとファイル名が含まれます。
"REQUEST_URI"
このページにアクセスするために必要な URI。たとえば、「/index.html」です。
"PHP_AUTH_DIGEST"
Apache モジュールとして実行している場合、HTTP ダイジェスト認証プロセス中に、この変数は (さらなる認証操作のために) クライアントによって送信された "Authorization" HTTP ヘッダーの内容に設定されます。
"PHP_AUTH_USER"
PHP が Apache または IIS (PHP 5 は ISAPI) モジュール モードで実行されており、HTTP 認証機能が使用されている場合、この変数はユーザーが入力したユーザー名です。
「PHP_AUTH_PW」
PHP が Apache または IIS (PHP 5 は ISAPI) モジュール モードで実行されており、HTTP 認証機能が使用されている場合、この変数はユーザーが入力したパスワードです。
"AUTH_TYPE"
PHP が Apache モジュール モードで実行され、HTTP 認証関数を使用している場合、この変数は認証タイプになります。
環境変数: $_ENV
注: PHP 4.1.0 以降のバージョンで使用されます。以前のバージョンでは、$HTTP_ENV_VARS が使用されていました。
パーサーの実行中、これらの変数は環境変数から PHP グローバル変数の名前空間 (ネームスペース) に変換されます。それらの多くは、PHP が実行されているシステムによって決まります。完全なリストは不可能です。システムのマニュアルを確認して、その特定の環境変数を確認してください。
PHP がサーバー モジュールとして実行されているか、CGI 処理として実行されているかに関係なく、その他の環境変数 (CGI 変数を含む) がここにリストされます。
これは「スーパーグローバル」、または自動グローバル変数として説明できます。これは、すべてのスクリプトで機能することを意味します。 $HTTP_ENV_VARS のように、関数またはメソッド内でアクセスするためにグローバル $_ENV を使用する必要はありません。
$HTTP_ENV_VARS には同じ情報が含まれていますが、自動グローバル変数ではありません (注: $HTTP_ENV_VARS と $_ENV は異なる変数であり、PHP では異なる方法で処理されます)。
register_globals ディレクティブが設定されている場合、つまり $_ENV 配列と $HTTP_ENV_VARS 配列が分離されている場合、これらの変数はすべてのスクリプトでも使用できます。関連情報については、「レジスタ グローバルの使用」のセキュリティ関連の章を参照してください。これらの個々のグローバル変数は、自動グローバル変数ではありません。
HTTP Cookie: $_COOKIE
注: PHP 4.1.0 以降のバージョンで使用されます。以前のバージョンでは、$HTTP_COOKIE_VARS が使用されていました。
HTTP Cookie 経由で渡される変数の配列。は自動グローバル変数です。
これは「スーパーグローバル」、または自動グローバル変数として説明できます。これは、すべてのスクリプトで機能することを意味します。 $HTTP_COOKIE_VARS を使用するのと同様に、関数やメソッドでグローバル $_COOKIE を使用してアクセスする必要はありません。
$HTTP_COOKIE_VARS には同じ情報が含まれていますが、自動グローバル変数ではありません (注: $HTTP_COOKIE_VARS と $_COOKIE は異なる変数であり、PHP では異なる方法で処理されます)。
register_globals ディレクティブが設定されている場合、つまり $_COOKIE 配列と $HTTP_COOKIE_VARS 配列が分離されている場合、これらの変数はすべてのスクリプトでも使用できます。関連情報については、「レジスタ グローバルの使用」のセキュリティ関連の章を参照してください。これらの個々のグローバル変数は、自動グローバル変数ではありません。
HTTP GET 変数: $_GET
注: PHP 4.1.0 以降のバージョンで使用されます。以前のバージョンでは、$HTTP_GET_VARS が使用されていました。
HTTP GET メソッド経由で渡される変数の配列。は自動グローバル変数です。
これは「スーパーグローバル」、または自動グローバル変数として説明できます。これは、すべてのスクリプトで機能することを意味します。 $HTTP_GET_VARS のように、関数またはメソッド内でアクセスするためにグローバル $_GET を使用する必要はありません。
$HTTP_GET_VARS には同じ情報が含まれていますが、自動グローバル変数ではありません (注: $HTTP_GET_VARS と $_GET は異なる変数であり、PHP では異なる方法で処理されます)。
register_globals ディレクティブが設定されている場合、つまり $_GET 配列と $HTTP_GET_VARS 配列が分離されている場合、これらの変数はすべてのスクリプトでも使用できます。関連情報については、「レジスタ グローバルの使用」のセキュリティ関連の章を参照してください。これらの個々のグローバル変数は、自動グローバル変数ではありません。
HTTP POST 変数: $_POST
注: PHP 4.1.0 以降のバージョンで使用されます。以前のバージョンでは、$HTTP_POST_VARS が使用されていました。
HTTP POST メソッド経由で渡される変数の配列。は自動グローバル変数です。
これは「スーパーグローバル」、または自動グローバル変数として説明できます。これは、すべてのスクリプトで機能することを意味します。 $HTTP_POST_VARS のように、関数またはメソッド内でアクセスするためにグローバル $_POST を使用する必要はありません。
$HTTP_POST_VARS には同じ情報が含まれていますが、自動グローバル変数ではありません (注: $HTTP_POST_VARS と $_POST は異なる変数であり、PHP では異なる方法で処理されます)。
register_globals ディレクティブが設定されている場合、つまり $_POST 配列と $HTTP_POST_VARS 配列が分離されている場合、これらの変数はすべてのスクリプトでも使用できます。関連情報については、「レジスタ グローバルの使用」のセキュリティ関連の章を参照してください。これらの個々のグローバル変数は、自動グローバル変数ではありません。
HTTP ファイルアップロード変数: $_FILES
注: PHP 4.1.0 以降のバージョンで使用されます。以前のバージョンでは、$HTTP_POST_FILES が使用されていました。
HTTP POST メソッド経由で渡される、アップロードされたファイル アイテムの配列。は自動グローバル変数です。
これは「スーパーグローバル」、または自動グローバル変数として説明できます。これは、すべてのスクリプトで機能することを意味します。$HTTP_POST_FILES を使用するのと同様に、関数またはメソッド内でアクセスするためにグローバル $_FILES を使用する必要はありません。
$HTTP_POST_FILES には同じ情報が含まれていますが、自動グローバル変数ではありません (PHP は 2 つの変数 $HTTP_POST_FILES と $_FILES を異なる変数として扱うことに注意してください)。
register_globals ディレクティブが設定されている場合、つまり $_FILES 配列と $HTTP_POST_FILES 配列が分離されている場合、これらの変数はすべてのスクリプトでも使用できます。関連情報については、「レジスタ グローバルの使用」のセキュリティ関連の章を参照してください。これらの個々のグローバル変数は、自動グローバル変数ではありません。
リクエスト変数: $_REQUEST
注: PHP 4.1.0 以降のバージョンで使用されます。以前のバージョンには、同等の配列がありませんでした。
注: PHP 4.3.0 より前では、$_FILES も $_REQUEST 配列に含まれていました。
この連想配列には、$_GET、$_POST、$_COOKIE のすべてが含まれています。
これは「スーパーグローバル」、または自動グローバル変数として説明できます。これは単に、すべてのスクリプトで機能することを意味します。関数またはメソッド内でグローバル $_REQUEST を使用してアクセスする必要はありません。
register_globals ディレクティブが設定されている場合、つまり $_REQUEST 配列が切り離されている場合、これらの変数はすべてのスクリプトでも使用できます。関連情報については、「レジスタ グローバルの使用」のセキュリティ関連の章を参照してください。これらの個々のグローバル変数は、自動グローバル変数ではありません。
セッション変数: $_SESSION
注: PHP 4.1.0 以降のバージョンで使用されます。以前のバージョンでは、$HTTP_SESSION_VARS が使用されていました。
現在のスクリプトのセッション変数を含む配列。詳細については、セッション関数のドキュメントを参照してください。
これは「スーパーグローバル」、または自動グローバル変数として説明できます。これは、すべてのスクリプトで機能することを意味します。 $HTTP_SESSION_VARS を使用する場合と同様に、関数またはメソッドでグローバル $_SESSION を使用してアクセスする必要はありません。
$HTTP_SESSION_VARS には同じ情報が含まれていますが、自動グローバル変数ではありません (PHP は 2 つの変数 $HTTP_SESSION_VARS と $_SESSION を異なる変数として扱うことに注意してください)。
register_globals ディレクティブが設定されている場合、つまり $_SESSION 配列と $HTTP_SESSION_VARS 配列が分離されている場合、これらの変数はすべてのスクリプトでも使用できます。関連情報については、「レジスタ グローバルの使用」のセキュリティ関連の章を参照してください。これらの個々のグローバル変数は、自動グローバル変数ではありません。
グローバル変数: $GLOBALS
注: $GLOBALS は PHP 3.0.0 以降のバージョンに適用されます。
定義されたすべてのグローバル変数で構成される配列。変数名は配列のインデックスです。
これは「スーパーグローバル」、または自動グローバル変数として説明できます。これは、すべてのスクリプトで機能することを意味します。関数またはメソッド内でグローバル $GLOBALS を使用してアクセスする必要はありません。
前のエラー メッセージ: $php_errormsg
$php_errormsg は、PHP によって生成された前のエラー メッセージの内容を含む変数です。この変数は、エラーが発生し、track_errors オプションがオンになっている場合にのみ有効です (デフォルトはオフ)。 }
http://www.bkjia.com/PHPjc/824951.html