#echo ディレクティブは、サーバー変数の値を表示するよう、Web サーバーに命令します。ディレクティブは、HTML のコメント デリミタで囲む必要があります。
既定値では、このディレクティブは STM ページでのみ使用できます。ASP ページでは使用できません。ASP ページの場合、Request.ServerVariables コレクションを使ってサーバー変数にアクセスできます。
<!-- #echo var = VariableName -->
VariableName
挿入する値の変数の名前を指定します。変数は、次のいずれか 1 つを指定できます。
変数 | 意味 |
ALL_HTTP | この表の変数に解析されていないすべての HTTP ヘッダーです。これらの変数は、HTTP_header field name という形式をとります。ヘッダーは、NULL で終了する文字列です。各ヘッダーは、キャリッジ リターン ライン フィードで区切られます。 |
AUTH_TYPE | 使用されている認証の種類が含まれます。たとえば、基本認証が使用されている場合、文字列は「Basic」になり、統合認証の場合は、「Negotiate」になります。ほかの認証方法の場合は、ほかの文字列になります。Web サーバーには新しい認証の種類を追加できるため、使用されるすべての文字列を列挙することはできません。文字列が空の場合、認証は使用されていません。 |
AUTH_PASSWORD | クライアントの認証ダイアログ ボックスに入力された値です。この変数は、基本認証が使用されている場合にのみ利用できます。 |
AUTH_USER | クライアントの認証ダイアログ ボックスに入力された値です。 |
CONTENT_LENGTH | スクリプトがクライアントから受け取る予定のバイト数です。 |
CONTENT_TYPE | POST 要求の本文に含まれる情報のコンテンツの種類です。 |
DOCUMENT_NAME | 現在のファイル名です。 |
DOCUMENT_URI | 現在のドキュメントへの仮想パスです。 |
DATE_GMT | グリニッジ標準時 (GMT) における現在の日付です。 |
DATE_LOCAL | 現地のタイム ゾーンにおける現在の日付です。 |
GATEWAY_INTERFACE | Web サーバーで使用される CGI 仕様のリビジョンです。リビジョンは、CGI/revision という形式で返されます。 |
HTTP_ACCEPT | 特殊な場合の HTTP ヘッダーです。accept フィールドの値が、カンマ (,) で区切られ、連結されます。たとえば、HTTP ヘッダーに、次のような行が含まれるとします。
この場合、HTTP_ACCEPT 変数には、次の値が格納されます。
|
LAST_MODIFIED | 現在のドキュメントが、最後に修正された日付です。 |
PATH_INFO | クライアントの指定による追加パス情報です。この変数は、URL のスクリプト名の後ろにあり、クエリ文字列 (存在する場合) の前にある部分から構成されます。 |
PATH_TRANSLATED | PATH_INFO の値ですが、仮想パスはディレクトリの指定に展開されています。 |
QUERY_STRING | このスクリプトを参照する URL において、疑問符 (?) の後に続く情報です。 |
QUERY_STRING_UNESCAPED | エスケープされていないクエリ文字列、つまり URL にエンコードされていないクエリ文字列です。 |
REMOTE_ADDR | 要求を送信したクライアントまたはクライアントのエージェント (ゲートウェイまたはファイアウォール) の IP アドレスです。 |
REMOTE_HOST | 要求を送信したクライアントまたはクライアントのエージェント (ゲートウェイまたはファイアウォール) のホスト名です。IIS 2.0 および 3.0 では、このパラメータに対して IP アドレスを返しました。 |
REMOTE_USER | クライアントがサーバーによる認証を受けた場合は、クライアントのユーザー名が入ります。アプリケーション上で匿名アクセスが有効になっている場合は、空文字列が返されます。 |
REQUEST_METHOD | HTTP 要求のメソッドです。 |
SCRIPT_NAME | 実行されるスクリプト プログラムの名前です。 |
SERVER_NAME | 自己参照 URL の中に指定するサーバーのホスト名または IP アドレスです。 |
SERVER_PORT | 要求を受信した TCP/IP ポートです。 |
SERVER_PORT_SECURE | 0 または 1 の文字列です。要求が安全なポートで処理された場合、値は 1 になります。それ以外の場合、値は 0 になります。 |
SERVER_PROTOCOL | この要求に関連した情報検索プロトコルの名前とバージョンです。通常は、HTTP/1.0 となります。プロトコルは、name/version の形式で返されます。 |
SERVER_SOFTWARE | 要求に応答する Web サーバーの名前とバージョンです。サーバー情報は、name/version の形式で返されます。 |
URL | URL のベース部分を示します。パラメータ値は含まれません。Web サーバーが、ヘッダーから URL を解析したとき、この値は決定されます。 |
重要
このディレクティブが入ったファイルには、SSI インタプリタにマップされるファイル名拡張子を使う必要があります。拡張子が異なると、Web サーバーはディレクティブを処理しません。既定では、ファイル名拡張子 .stm、.shtm、および .shtml が SSI インタプリタ (ssinc.dll) にマップされます。#echo ディレクティブを使用する STM ページは、それ自身または ASP ページから Response.Redirect を使用して実行する必要があります。STM ページを ASP ページから Server.Transfer、Server.Execute、または #include を使用して呼び出すと、STM ページが ssinc.dll ではなく asp.dll を通過するよう強制されるため、機能しません。
IIS スナップインをインストールしている場合、既定の拡張子マッピングを変更して新しいマッピングを追加できます。詳細については、「アプリケーションのマッピングを設定する」を参照してください。ファイル拡張子を複数の実行可能ファイルにマップすることはできないため、このディレクティブを ASP ファイルでは使用できません。ASP ファイルは、既に asp.dll にマップされていて、そのまま保持する必要があります。
この例では、#echo ディレクティブを使用して URL を FORM ステートメントの ACTION 値に挿入します。
--- Echo.asp ---
<FORM NAME="RunEcho" METHOD="POST" ACTION="Echo.asp"> <INPUT TYPE="SUBMIT" VALUE="Run the #echo Directive" NAME="RunEcho"> </FORM> <% If Len(Request.Form("RunEcho")) Then Response.Redirect("Echo.stm?Echo.asp") End If %>
--- Echo.stm ---
<H3>Inside Echo.stm</H3> AUTH_TYPE is <!-- #echo var="AUTH_TYPE"--><BR> <FORM NAME="Return" METHOD="POST" ACTION="<!-- #echo var="QUERY_STRING"-->"> <INPUT TYPE="SUBMIT" VALUE="Return to Previous Page" NAME="Return"> </FORM>