ASP - Determinar se Script atual está sendo executado como um include

votos
2

Vamos dizer que eu tenho as seguintes páginas:

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

%>

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

Eu preciso disso para trabalhar de tal forma que se eu acessar http://Example.com/Include.asp diretamente, eu ver True, mas se eu acessar http://Example.com/Outside.asp vejo False. Eu perfer para não ter que acrescentar nada ao Outside.asp. Alguém pode pensar em uma maneira de criar uma tal função IsIncluded em ASP? Eu era capaz de criar tal função em PHP, comparando __FILE__a $ _SERVER [ 'PHP_SELF'], mas isso não vai funcionar aqui becasue ASP não tem qualquer coisa como __FILE__que eu estou ciente.

Publicado 26/08/2009 em 23:06
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

Tente verificar a URL solicitada e combiná-lo contra o incluem. Exemplo fornecida em 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")
}
Respondeu 27/08/2009 em 03:11
fonte usuário

votos
0

Geralmente no ASP não é boa prática para ter um arquivo de inclusão também disponível como algo que pode ser buscado pelo cliente. Se você quiser especificamente para impedir que o cliente buscar um arquivo de inclusão em seguida, coloque o seu inclui em uma pasta (chamado dizer "Inclui"), em seguida, bloquear o acesso a essa pasta no IIS.

OTH se você deseja que o usuário seja capaz de acessar o arquivo incluem praticamente como ele é e também permitir que outras páginas para incluí-lo em seguida, criar uma página de "host" para o incluir. Por exemplo:-

# /Includes/Include.asp
<%
%>

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

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

Agora você pode mover o código e conteúdo que eram exclusivas de "Include.asp" quando estava sendo acessada diretamente para o arquivo IncludeHost.asp.

Respondeu 28/08/2009 em 10:51
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more