2

次のページがあるとしましょう。

# Include.asp
<%
Response.Write IsIncluded() & "<br>"

%>

# Outside.asp
<!--#include file="Include.asp" --> 

これを機能させるには、 http://Example.com/Include.aspに直接アクセスすると「True」が表示されますが、http://Example.com/Outside.aspにアクセスするとFalseが表示されるようにする必要があります。Outside.aspに何も追加する必要はありません。ASPでそのようなIsIncluded関数を作成する方法を誰かが考えることができますか?$ _SERVER ['PHP_SELF']と比較することで、PHPでこのような関数を作成できましたが、ASPには私が知って __FILE__いるようなものがないため、ここでは機能しません。__FILE__

4

2 に答える 2

1

要求されたURLを確認し、それをインクルードと照合してみてください。JavaScriptで提供される例

function IsIncluded() {
  var url = String(Request.ServerVariables("URL"));
  url = url.substring(0, url.indexOf("?")).substring(0, url.indexOf("#")).substr(url.lastIndexOf("/"));
  return (url == "Include.asp")
}
于 2009-08-27T02:11:39.850 に答える
0

一般に、ASPでは、クライアントがフェッチできるものとしてインクルードファイルも使用できるようにすることはお勧めできません。クライアントがインクルードファイルをフェッチしないようにする場合は、インクルードをフォルダー(「インクルード」と呼ばれます)に配置し、IISでそのフォルダーへのアクセスをブロックします。

OTHユーザーがインクルードファイルにほとんどそのままアクセスできるようにし、他のページにもインクルードできるようにする場合は、インクルードの「ホスト」ページを作成します。例えば:-

# /Includes/Include.asp
<%
%>

# IncludeHost.asp
<!-- #include virtual="/Includes/Include.asp" -->

# Outside.asp
<!-- #include virtual="/Includes/Include.asp" -->
<%
   '' #Other content/code here
%>

IncludeHost.aspファイルに直接アクセスしているときに、「include.asp」に固有のコードとコンテンツを移動できるようになりました。

于 2009-08-28T09:51:14.343 に答える