Referensbok

HTML © Eva von Pepel

* [ HTML-referensbok ] * [ Referensböcker ] *

Server Side Includes

Inledning

SSI är korta kommandon som skrivs in i dokumentet. Dessa kommandon tillåter skapandet av dokument med dynamisk genererad information. Dynamisk genererad information är information som inte finns i dokumentet men infogas av servern först då dokument har begärts. Det kan vara nuvarande tid, information från vilken server dokumentet har begärts eller infogandet av någon annan information t ex ett annat dokument.

SSI fungerar oberoende av plattform dvs hård- och mjukvara. Tyvärr, inte alla leverantörer tillåter sina kunder att ha tillgång till SSI p.g.a. en viss säkerhetsrisk. Om din leverantör inte tillåter SSI använd ett skript istället. Ett skriptexempel finns nedan.

De flesta dokument visas på det sätt de är strukturerade. För att ett dokument ska visas med ett annat innehåll, t ex även innehålla information som inte finns i det måste man tala om för servern att dokumentet dels behöver bearbetas/analyseras innan det skickas vidare dels vad som ska göras. (En sådan analys kallas för parsing.) Man talar om för servern att ett vist dokument ska bearbetas genom att lägga (för det mesta) .shtm (server parsed html) till dokumentets namn. M.a.o. ett dokument heter t ex index.shtml och inte index.html.

Genom att inkludera SSI-kommandon i dokumentet talar man om för servern vad den ska göra. SSI-kommandon skrivs in i dokumentet som HTML-kommentarer.

<!-- Detta är en HTML-kommentar -->

Normalt ignoreras alla kommentarer - de visas inte på skärmen. För att servern skulle förstå att just denna kommentar inte ska ignoreras därför att den innehåller ett SSI-kommando börjar man kommentaren med tecknet # (stege) som följs direkt av ett nyckelord. Nyckelordet talar om för servern vad den ska göra. T ex nyckelordet include säger att en annan fil ska inkluderas.

SSI:er skrivs som osynliga kommentarer dvs mellan .

<!--#kommando tag1="värde1" tag2="värde2" -->

Kommandon

OBS! Kommandon kan skiljas beroende på serverinställningar. De flesta av följande kommandon får stöd hos Algonet som deras Apache server. Exempel på "levande" SSI finns på http://vonpepel.com/ref/exempel/test.shtml

#exec

Exekverar ett cgi-program men sällan tillåts p.g.a. säkerhetsskäl

<!--#exec cgi="cgi_fil_namn" -->

Börja från dokumentets rot om du vill uppge hela sökvägen, t ex "/användarnamn/sökväg/cgi_fil_namn".

Med #exec kan du även skapa OS-kommandon. Kommandon skapas med hjälp av argument cmd

<!--#exec cmd="system_kommandon" -->

Om du är t ex på UNIX och vill lista alla filer i det auktuella biblioteket, skriver du:

<!--#exec cmd="ls" -->

Om du vill exekvera fler än ett kommando, lista dem ett efter ett och separera med ett semikolon.

#include

Du kan även inkludera en HTML-fil, dvs fil med tillägget .html. Men var noga med att inte ha i denna fil element som bara får förekomma en gång per dokument, såsom elementet HTML, hela huvuddelen och elementet BODY. Finns det (t ex) två BODY i ett dokument kommer dokumentet att vara ogiltigt.

virtual

Anger en virtuell sökväg till ett dokument som finns på servern

<!--#include virtual="/~server/virtual_dokument.txt"-->

file

Anger en sökväg till det aktuella biblioteket

<!--#include file="dokument.txt"-->

#fsize

Skriver ut storleken av den angivna filen

<!--#fsize file="dokument.txt"-->

flastmod

Skriver ut datum av senaste redigeringen av det angivna dokumentet

<!--#flastmod file="dokument.txt"-->

#config

filanalys - har två taggar

errmsg

kontrollerar vilka meddelanden som skickas vid eventuella fel. Felen registreras i en log fil

<!--#config errmsg="[Något meddelande!]"-->

sizefmt

bestämmer formateringen

<!--#config sizefmt="bytes"-->

#echo

Skriver ut värde av den angivna variabeln. Har bara en tag - var

<!--#echo var="DOCUMENT_NAME"-->

Variabler - #echo

(inte alla får support - vilka får och vilka inte beror på serverns konfiguration)

Skriptexempel - shell

#!/bin/sh
echo "Content-type: text/html"
echo ""
cat << _EOF_

<HTML>
<BODY inklusive alla eventuella attribut>
(här skriver man sitt html-dokument på "vanligt" sätt. När det är dax för SSI skriver man t ex:)

<PRE>
Du använder dig av browser: $HTTP_USER_AGENT
Din adress är: $REMOTE_ADDR
</PRE>
</BODY>
</HTML>

_EOF_

exit

Dokumentet namnges t ex dokument.sh, laddas upp till servern som ASCII, ges chmod 755-rättigheter och anropas (länkas) från ett annat dokument, t ex:

<A HREF="/htbin/cgiwrap&user =användarnamn&script=dokument.sh">Skriptet</A> (OBS! inga mellanslag)

Upp | HTML-referensbok | Referensböcker

Valid HTML 4.0 dok.