Inclusions côté serveur | |
Semblables aux directives de prétraitement, les inclusions côté serveur vous permettent d'inclure plusieurs valeurs (par exemple, la date de la dernière modification d'un fichier) ou un fichier complet dans votre script. Les directives d'inclusion côté serveur prises en charge par IIS sont les suivantes :
Toutes les directives sont autorisées dans HTML, mais seule la directive #include est autorisée dans les pages HTML et les pages ASP. La directive #include est décrite en détail ci-dessous. |
Inclusions côté serveur : Commentaires/Dépannage | |
L'inclusion de fichiers est une excellente méthode pour écrire du code réutilisable. Elle est souvent utilisée pour le code apparaissant dans la plupart des scripts, par exemple pour établir une connexion à une base de données ou fermer une connexion une fois que votre code n'en a plus besoin. Bien que les fichiers d'inclusion ne requièrent pas d'extension spécifique, Microsoft propose l'extension |
#include | |||||||
<!-- #include PathType = "strFileName" --> | |||||||
<!-- #include PathType = "strFileName" --> L'inclusion côté serveur #include vous permet d'insérer le contenu d'un fichier donné dans le contenu HTML ou le script ASP. Vous devez placer l'instruction de l'inclusion côté serveur #include dans un commentaire HMTL pour éviter d'afficher le texte de l'inclusion côté serveur comme texte direct. |
|||||||
Paramètres | |||||||
Une autre méthode d'inclusion de fichier a été introduite dans la version IIS 5.0. Vous pouvez utiliser la balise <SCRIPT> combinée avec l'attribut SRC en appliquant le format suivant : <SCRIPT LANGUAGE = "VBScript" RUNAT=SERVER SRC="strFileName"> </SCRIPT> Dans le code précédent, le paramètre strFileName est identique à celui utilisé avec la directive INCLUDE, et il peut être un chemin d'accès absolu ou relatif. |
|||||||
Exemple 1 | |||||||
Ce script contient seulement une simple ligne de code "retour au début" et une ligne horizontale avec un graphique. <!--ReturnTop.INC --> <CENTER> <HR> Click <A HREF = #top>here</A> to go back to the top of the page.<BR> <IMG SRC = "/Images/CorpLogo.GIF"></CENTER><BR> Vous pouvez maintenant inclure ce fichier chaque fois que vous souhaitez revenir au début d'une page. <HTML> <HEAD><TITLE>Include Example</TITLE></HEAD> <BODY> <% [CODE TO RETRIEVE GLOSSARY TERMS FROM SQL SERVER DATABASE] ' Filter the recordset to include only the A's. adoRecGlossary.Filter = "UPPER(SUBSTRING(GlossTerm, 1)) = 'A'" ' Iterate through the items in the filtered recordset. Do While Not adoRecGlossary.EOF %> Term: <%=adoRecGlossary("GlossTerm")%><BR> Definition: <%=adoRecGlossary("GlossDef")%><BR> <% adoRecGlossary.MoveNext Loop ' Next include the link to top file: %> <!-- #include virtual = "/Includes/ReturnTop.INC" --> <% ' Repeat for the next letter... %> </BODY> </HTML> |
|||||||
Exemple 2 | |||||||
Ce script contient du code ASP qui sera inclus dans un fichier en utilisant la balise <SCRIPT> combinée avec la méthode SRC : ' ReturnTop2.INC Response.Write "<CENTER>" Response.Write "<HR>" Response.Write "Click <A HREF = #top>here</A> to go back to the top of the page.<BR>" Response.Write "<IMG SRC = "/Images/CorpLogo.GIF"></CENTER><BR>" Vous pouvez maintenant inclure ce fichier chaque fois que vous souhaitez revenir au début d'une page. <HTML> <HEAD> <TITLE>Include Example 2</TITLE> </HEAD> This page will now include a file...<BR> <SCRIPT LANGUAGE="VBScript" RUNAT="SERVER" SRC="ReturnTop2.INC"> </SCRIPT> . . . |
|||||||
Remarques | |||||||
L'utilisation de la directive INCLUDE vous permet d'inclure des fichiers contenant du code HTML ou ASP ou une combinaison des deux. L'utilisation de la méthode de balise SCRIPT (comme dans l'exemple précédent) vous permet d'inclure des fichiers ne contenant que du code ASP. Les exemples montrent comment réduire les tâches redondantes en utilisant l'inclusion de fichiers. Toutefois, ces exemples sont très simples. Supposons un autre cas dans lequel vous devez inclure un fichier contenant le DSN de votre base de données, le nom d'utilisateur et le mot de passe. Vous pouvez utiliser le fichier d'inclusion partout sur votre site. Le changement du nom d'utilisateur et du mot de passe deviendrait alors une opération simple. Il suffirait de les modifier dans le fichier d'inclusion. Si vous utilisez l'inclusion côté serveur #include pour intégrer le contenu d'un fichier ASP, vous devez placer tout script entre les signes <%...%>. Dans le cas contraire, le contenu du fichier est considéré comme du code HTML ordinaire. Utilisez cette inclusion côté serveur pour localiser les parties de votre script qui sont utilisées souvent, par exemple les informations d'accès à la base de données. Vous pouvez également changer les noms d'utilisateur et les mots de passe rapidement et de manière efficace. Si vous envisagez d'utiliser l'inclusion côté serveur #include dans ce but, assurez-vous de sécuriser correctement tous les fichiers que vous utilisez. Vous pouvez inclure des fichiers à l'intérieur de fichiers qui, à leur tour, sont inclus dans d'autres fichiers. Vous pouvez également inclure le contenu d'un fichier donné plusieurs fois dans le même script. Par exemple, vous pouvez créer un simple script de gestion des erreurs. Considérez le fichier suivant : <% If Err.Number <> 0 Then %> <HTML> <HEAD><TITLE>Error Notice</TITLE></HEAD> <BODY> There has been an error in your script (<%=Request. ServerVariables("SCRIPT_NAME")%>.<BR> Please contact customer service at 1-800-555-HELP and tell them that you've experienced an error in (<%=Request. ServerVariables("SCRIPT_NAME")%> and that the parameters sent to the script were the following:<BR> (<%=Request.ServerVariables("QUERY_STRING")%>.<BR><BR> We apologize for the inconvenience. </BODY> </HTML> <% End If %> Vous pouvez inclure ce fichier (nommé <%Response.Buffer = True%> <HTML> <HEAD><TITLE>Database Info Page</TITLE></HEAD> <BODY> <% Set adoCon = Server.CreateObject("ADODB.Connection") AdoCon.Open "MyDatabase" %> <!-- #include virtual = "/Accessory/ERROR.INC" --> <% Set adoRec = adoCon.Execute ("SELECT * FROM TopSales") %> <!-- #include virtual = "/Accessory/ERROR.INC" --> <% %> </BODY> Dans ce script, si une erreur est générée à l'ouverture de la connexion de la base de données ou au moment de la création du jeu d'enregistrements, l'utilisateur voit le contenu du fichier Assurez-vous, lorsque vous incluez un fichier, que ce dernier ne contient pas le fichier en cours. Dans ce cas, une erreur d'arrêt de service survient sur le serveur Web. Vous devrez arrêter et relancer le service Web. Gardez à l'esprit également que les inclusions côté serveur sont traitées avant tout code de script. Vous ne pouvez donc pas déterminer dynamiquement le fichier à inclure. Par exemple, le script suivant génère une erreur d'exécution : <% Dim strFileName strFileName = "/Apps/CustomConstants.INC" %> <!-- #include file="<%=strFileName%>"--> Enfin, vous devez placer les inclusions côté serveur hors des délimiteurs de script (<%...%>), des balises <SCRIPT></SCRIPT> et des balises <OBJECT></OBJECT>. Par exemple, le script suivant génère une erreur d'exécution (le délimiteur %> est manquant) : <% Dim strLastName strLastName = "Weissinger" <!-- #include file="/Apps/CustomConstants.INC"--> Le code suivant est également voué à l'échec : <SCRIPT LANGUAGE="VBScript"> Sub btnHello_Click( ) Dim strLastName strLastName = "Weissinger" <!-- #include file="/Apps/CustomConstants.INC"--> End Sub </SCRIPT> Cette inclusion côté serveur est la seule que vous pouvez utiliser avec les fichiers HTML et ASP. Si vous utilisez l'inclusion côté serveur #include dans un fichier, l'extension de ce fichier doit être l'une des extensions mappées sur |
|||||||