ASP - Déterminer si le script en cours est en cours d'exécution en tant inclure

voix
2

Disons que j'ai les pages suivantes:

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

%>

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

Je en ai besoin de travailler de telle sorte que si j'accéder http://Example.com/Include.asp directement, je vois « vrai », mais si j'accéder à http://Example.com/Outside.asp je vois Faux. Je perfer de ne pas avoir à ajouter quoi que ce soit à Outside.asp. Quelqu'un peut -il penser à un moyen de créer une telle fonction IsIncluded en ASP? J'ai pu créer une telle fonction en PHP en comparant __FILE__à $ _SERVER [ « PHP_SELF »], mais cela ne fonctionne pas ici becasue ASP n'a pas quelque chose comme __FILE__que je suis au courant.

Créé 26/08/2009 à 23:06
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
1

Essayez de vérifier l'URL demandée et correspondre contre l'inclure. Exemple fourni en 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")
}
Créé 27/08/2009 à 03:11
source utilisateur

voix
0

En général, dans son ASP pas une bonne pratique d'avoir un fichier à inclure également disponible quelque chose qui peut être récupéré par le client. Si vous voulez spécifiquement pour empêcher le client aller chercher un fichier à inclure puis placez votre dossier inclut dans un (appelé dire « comprend ») puis bloquer l'accès à ce dossier dans IIS.

OTH si vous ne souhaitez que l'utilisateur puisse accéder au fichier à inclure à peu près comme il est et aussi permettre à d'autres pages de l'inclure ensuite créer une page « hôte » pour l'inclure. Par exemple:-

# /Includes/Include.asp
<%
%>

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

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

Vous pouvez maintenant déplacer le code et le contenu uniques à « Include.asp » quand il était en cours d'accès directement au fichier IncludeHost.asp.

Créé 28/08/2009 à 10:51
source utilisateur

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