<<< Förra avsnittet Innehåll Nästa avsnitt >>>

SSI ­ Server-side includes

Med hjälp av server-side includes kan ett dokument infogas i ett annat. När användaren klickar fram en ny sida så skickar servern normalt en HTML-fil till användarens webbläsare. Om man använder server-side includes så söker servern igenom HTML-filen efter s.k. include-direktiv innan den skickar iväg den, och byter ut direktiven mot extra HTML-kod som alltså infogas "i farten" i den HTML-fil som användaren begärde.

Den HTML-kod som infogas kan antingen vara ett komplett HTML-dokument på serverns hårddisk, eller vara utdata från ett CGI-program. Det kan också vara till exempel anropande dators IP-nummer, aktuell tid, datum då ett dokumentet senast uppdaterades etc.

Att söka igenom alla dokument efter include-direktiv tar extra tid och datorkraft av servern, så därför brukar man ställa in servern så att den bara söker igenom de dokument där webbdesignern vet att det finns include-direktiv. Den vanligaste inställningen är att servern söker igenom filer som istället för .html slutar på .shtml. Andra ändelser som förekommer på vissa servrar är .sml, .sht och .ssi.

Ett include-direktiv har utseendet <!--#command item="value"--> Det ser alltså ut som en vanlig HTML-kommentar, det vill säga en textsträng omgiven av <!-- och -->. Detta gör att include-direktivet inte påverkar sidans utseende ifall det av någon anledning inte skulle behandlats av servern innan filen skickades, till exempel när man tittar på sidan lokalt från sin hårddisk, eller om webbservern inte stöder SSI.

Server-side includes är en funktion hos webbservern, och exakt vilka kommandon i include-direktiven som stöds varierar från server till server.

Webbhotell och internetleverantörer brukar i allmänhet ha särskilda restriktioner för SSI. De flesta tillåter inte alls SSI, andra tillåter endast include, och inte exec. Kontrollera med ditt webbhotell vilka regler som gäller.

Några av de vanligaste include-direktiven är:

<!--#exec cgi="/cgi-bin/filnamn"-->
Exekverar ett CGI-program och ersätter include-direktivet med utdata från programmet.
<!--#exec cmd="unix-kommando"-->
Öppnar ett shell (/bin/sh) och exekverar angivet Unix-kommando. Eventuell utdata läggs in i sidan.
<!--#flastmod file="dokument.html"-->
Ersätter include-direktivet med datum för senaste redigeringen av det angivna dokumentet. Datumformatet kan styras med include-direktivet <!--#config timefmt="%Y-%m-%d klockan %R"-->.
<!--#fsize file="dokument.html"-->
Ersätter include-direktivet med storleken på den angivna filen. Formatet kan styras med include-direktiven <!--#config sizefmt="abbrev"--> och <!--#config sizefmt="bytes"-->.
<!--#include file="dokument.html"-->
Ersätter include-direktivet med innehållet i en fil på servern. Filnamnet anges relativt nuvarande mapp. Det går inte att ange filer uppåt i filstrukturen.
<!--#include virtual="/mapp/dokument.html"-->
Ersätter include-direktivet med innehållet i en fil på servern. Filnamnet anges som absolut path (måste börja med /).
<!--#echo var="env-var"-->
Ersätter include-direktivet med värdet på en s.k. environment-variabel. Man kan använda samma environment-variabler som för CGI (se detta avsnitt) samt ytterligare några, till exempel DOCUMENT_NAME, DOCUMENT_URI, QUERY_STRING_UNESCAPED, DATE_LOCAL, DATE_GMT och LAST_MODIFIED.

<<< Förra avsnittet Innehåll Nästa avsnitt >>>


Copyright © Anders Hultman 1998-02-21