HTML © Eva von Pepel
* [ HTML-referensbok ] * [ Referensböcker ] *
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" -->
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
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.
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.
Anger en virtuell sökväg till ett dokument som finns på servern
<!--#include virtual="/~server/virtual_dokument.txt"-->
Anger en sökväg till det aktuella biblioteket
<!--#include file="dokument.txt"-->
Skriver ut storleken av den angivna filen
<!--#fsize file="dokument.txt"-->
Skriver ut datum av senaste redigeringen av det angivna dokumentet
<!--#flastmod file="dokument.txt"-->
filanalys - har två taggar
kontrollerar vilka meddelanden som skickas vid eventuella fel. Felen registreras i en log fil
<!--#config errmsg="[Något meddelande!]"-->
bestämmer formateringen
<!--#config sizefmt="bytes"-->
Skriver ut värde av den angivna variabeln. Har bara en tag - var
<!--#echo var="DOCUMENT_NAME"-->
(inte alla får support - vilka får och vilka inte beror på serverns konfiguration)
#!/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)