Indlæs andet indhold på denne side:
Siden er opdateret 7. 2. 2009
Løsningen med SSI forudsætter, at din webudbyders server understøtter SSI, hvilket du selv må undersøge - jeg kan dog allerede nu afsløre at f.eks. CyberCity og TDC ikke understøtter denne teknik.
Generelt kan siges, at det kun kan bruges på servere, der understøtter asp. På servere, der understøtter php, kan bruges en lignende metode, som du vil begribe essensen i, når du har læst dette kapitel, så forsæt kun.
Du laver menuen - den del, som ovenfor er lavet med rød tekst - som en selvstændig fil, der så inkluderes på alle sider ved brug af et lille simpelt script. I fremtiden, når du ændrer på sidernes fordeling eller navne, skal du kun rette i en enkelt fil - den løse menu - for at have opdateringen på plads på alle sider.
Menuen gemmes med en extension, så du kan skelne filen fra andre filer. Det kan f.eks. være menu.inc.
Du skal bare være opmærksom på, at det ikke er alle servere, som blokerer for hentning af filer med extension .inc, men du kan teste på dit webhotel, om der er spærret eller serveren leverer filen som en tekstfil og om nødvendigt give dine include-filer dobbelt-extension, f.eks.: menu.inc.html, menu.inc.php eller menu.inc.php.
Derved spærrer du effektivt for, at uvedkommende får set oplysninger, som kun må ligge på serveren - du skal bare ikke bruge asp til sidst, hvis din server ikke understøtter asp-filer, eller php til sidst, hvis serveren ikke understøtter php-filer, da du så ikke har opnået spor. Dine filer vil alligevel bare blive vist som tekst.
Du skal stadig have dine sider opbygget på samme måde, men i stedet for at skrive menuen i sin fulde ordlyd på menuens plads, laver du dette lille script:
<!--#include file="menu.inc.php"-->
Der kan evt. blive tale om at specifisere stien til menufilen. Hvis f. eks. menufilen ligger i en parallel mappe, vil <!--#include file="../scripts/menu.inc.php"--> fortælle brugerens browser, at menuen skal hentes i mappen 'scripts'.
Med dette script indsat ser koden til dine sider nu sådan ud:
<body>
<div id="topbar"><h1>Sidens toptekst</h1></div>
<div id="menu">
<!--#include file="../scripts/menu.inc.php"-->
</div>
<div id="indhold">
<h2>Sidens overskrift</h2>
<p>sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst</p>
</div>
</body>
Brugeren vil ikke kunne se nogen forskel. Din menu bliver inkluderet på dine sider, som om den faktisk var skrevet på siderne:
Sidens toptekst | |
Menupunkt 1 Menupunkt 2 Menupunkt 3 |
Sidens overskrift sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst sidetekst |
Bundtekst - info til brugerne |
Alle de af dine sider, der skal have menufilen inkluderet, skal have extension ændret til *.shtml.
Menufilens fulde indhold skal være som du ser herunder med rød tekst - ret menupunkternes tekst, adresserne og efter behov antallet af menupunkter - men der skal ikke være noget hverken over eller under den tekst, du ønsker vist på menuens plads på siderne. Altså hverken <html></html>, <head></head> eller <body></body> :
<ul>
<li><a href="side1.shtml">Menupunkt 1</a></li>
<li><a href="side2.shtml">Menupunkt 2</a></li>
<li><a href="side3.shtml">Menupunkt 3</a></li>
</ul>
Som jeg var inde på tidligere, virker denne metode til inkluderet menu ikke fra alle servere, kun de, der understøtter SSI.
Ydermere kan den ikke umiddelbart afprøves fra egen harddisk. Det kræver, at du installerer et program, der hedder IIS - hvilket står for Internet Information Service. Programmet findes på installationsdisken til Windows XP Pro, Windows Vista Home Premium og Windows 7 Home Premium.
En tredje mulighed til lokal afvikling af ssi er Apache, som er den mest brugte server til afvikling af php, hvor PWS og IIS mest bruges til asp. Apache er den mest almindelige server i Linux-miljøet men kan også køre på en Windows-maskine.
Du vil selvfølgelig gerne se denne teknik ssi fungere i praksis. Jamen det gør du allerede. Hjemmesideskolen er skrevet på denne måde med menuer (og sideheaders) inkluderet via SSI.
Jamen, mine sider hedder da ikke shtml til efternavn? Nej, for jeg anvender desuden den teknik, der hedder PHP. Derfor hedder mine sider *.php, men jeg anvender alligevel den samme teknik med indkluderede menuer.