以前は、Request.ServerVariables には多くの値があると感じていましたが、今ではまだたくさんあることがわかりました。今日は、値の 1 つである HTTP_Referer と、Server_Name と Http_Host の違いについて説明します。 Request.ServerVariables?
Request.ServerVariables にいくつの値があるかを確認するためにコードを実行したところ、合計 50 個ありました。
コード<%=Request.ServerVariables.count%>
以前は、Request.ServerVariables にはたくさんの値があるように感じていましたが、今ではまだたくさんあることがわかりました。今日は値の 1 つである ---- HTTP_Referer について話します。
まず、HTTP_Referer の最も一般的に使用されるアプリケーションは、外部送信を防ぐことであることがわかります。
次の状況では、Request.ServerVariables(HTTP_REFERER) はブラウザのアドレス バーから通常どおり取得されます。
1) <a href=> を直接使用する
2) Submit または <input type=image> (POST または GET) で送信されたフォーム
3) JavaScript を使用したフォーム送信 (POST または GET)
Request.ServerVariables(HTTP_REFERER) が正常に値を取得できない状況を見てみましょう。
1) お気に入りからのリンク
2) ホームページまたはカスタマイズされたアドレスをクリックします
3) ブラウザにアドレスを直接入力します。
4) JavaScript の Location.href または Location.replace() を使用します。
5) <%Response.リダイレクト%>
6) <%Response.AddHeader%> または <mete http-equiv=refresh> リダイレクト
7) XMLを使用してアドレスをロードします
明らかに、ほとんどの場合、Request.ServerVariables(HTTP_REFERER) は正しく機能しません。今後の記事で具体的な使い方を詳しく紹介するとともに、Request.ServerVariables(HTTP_HOST)Request.ServerVariables(SERVER_NAME) の違いについても紹介します。
乞うご期待!
Request.ServerVariables の Server_Name と Http_Host の違いは何ですか?
よく見ないと、両者の違いは分からないはずです。ネットで色々調べても理解できなかったのですが、最後に「Http_Hostは80以外のServer_Portを要求できる。簡単に言うと、Http_Host=Server_Name:Server_Port」という非常にわかりやすい一文がありました。
以前に Http_Referer の役割に関する記事を公開しましたが、今回はそれを組み合わせて、外部送信を防ぐ ASP 関数を作成します。
次のようにコードをコピーします。function ChkPost()
dim server_v1,server_v2
chkpost=false
server_v1=Cstr(Request.ServerVariables(HTTP_REFERER))
server_v2=Cstr(Request.ServerVariables(SERVER_NAME))
If Mid(server_v1,8,Len(server_v2) ) <>server_v2 その後
chkpost=False
else
chkpost=True
end If
end function
Select Case
複数のコードセットから 1 つを選択して実行する場合は、SELECT ステートメントを使用できます。
次のようにコードをコピーします。
select casepayment
case Cash
msgbox これから実行するの
は、次のとおりです。現金で支払う
場合 Visa
msgbox ビザで支払う予定です
ケース AmEx
msgbox アメリカン・エキスプレスで支払う予定です
その他の場合
msgbox 支払い方法が不明です
終了
上記の選択
コードの仕組み: まず、単純な式 (通常は変数) が必要で、この式は 1 回評価されます。次に、式の値と各ケースの値を比較し、一致する場合は、一致したケースに対応するコードが実行されます。