© ilj ilj@flowsim.se
CGI-SKRIPT PÅ SVENSKA
CGI från början

 

 

 
mer om CGI-skript längre ner
en linje
en pil som pekar nedåt
 

 
 

 
Ett CGI-skript är ett program som ligger på servern och som kan köras från en HTML-sida. Det kan vara skrivet i en mängd olika språk. Vanliga CGI-skript är t ex räknare och gästböcker.
 
VAD MAN MÅSTE TA REDA PÅ INNAN MAN KAN SÄTTA IGÅNG
 
1 - var på servern man ska placera programmet

  • Ofta ska programmet ligga i en katalog som heter cgi-bin och som ligger direkt under public_html, men det här varierar mellan olika servrar.
     
    Om man kan köra CGI-program eller inte hänger på de rättigheter som satts av den som är ansvarig för servern, så man kan inte bara skapa en katalog som heter cgi-bin och tro att det ska fungera.
2 - hur anropet ska se ut
  • hur det ser ut beror på om internetleverantören tillåter direkt cgi eller använder cgi-wrap; är direkt cgi tillåtet och programmet ligger i cgi-bin kan det se ut så här:
     
    /cgi-bin/programnamn.cgi
     
    t ex
     
    <A HREF = "/cgi-bin/programnamn.cgi"> STARTA CGI-PROGRAM</A>

 
3 - var på servern tolken av det språk man tänker skriva programmet i är placerad
  • om man skriver programmet i t ex Perl och inte vet var Perl-tolken finns kan man skriva så här i prompten:
     
    whereis perl
Om att använda HyperTerminalen och en förteckning över några UNIX-kommandon, se MINIMANUALER - UNIX
 
 
ETT EXEMPEL - test.cgi
Om man kör det här programmet visar webbläsaren en HTML-sida med röd bakgrundsfärg och texten "Test!"
 
---------------
#! /usr/local/bin/perl1
print "Content-type:text/html\n\n";2
print <<'MIN_SLUTA_PRINTA_TAG';3
<HTML>
<BODY BGCOLOR = "red"> Test! </BODY>
</HTML>
MIN_SLUTA_PRINTA_TAG
---------------
 
1 den här raden talar om att programmet är skrivet i Perl och var perltolken är placerad. Det här kan alltså variera och se ut till exempel så här:
#! /usr/bin/perl
#-tecknet måste stå längst till vänster på raden - inget mellanslag först alltså.
 
2 talar om vilken typ av data som ska sändas till webbläsaren - här är det HTML men det kan också vara t ex text/plain (vanlig text alltså) eller en bild, t ex image/gif. \n betyder ny rad. Efter den här raden måste man ha en tom rad - alltså två \n. Avsluta med semikolon.
 
3 den här raden kan läsas "skriv allt som följer efter den här raden och håll på med det fram till MIN_SLUTA_PRINTA_TAG". Enkla citationstecken betyder att det efterföljande printas rakt av, ordagrant. Avsluta med semikolon.

SÅ HÄR KAN MAN GöRA
1 Skriv programmet i till exempel Notepad (Anteckningar). Glöm inte att ta bort fotnoterna om du använder programmet i exemplet!
 
2 Skapa en HTML-sida. Placera ett anrop på den. Exakt hur anropet ser ut varierar alltså:

 
<A HREF = "cgi-programmet"> Starta CGI-programmmet</A>
 
3 Lägg in filerna på servern.
(Om att skicka filer med HyperTerminalen eller Netscape 4 se HTML: FTP)
 
4 När cgi-filen väl hamnat på rätt ställe måste man sätta exekveringsrättigheter på den. För att göra det kan man använda till exempel HyperTerminalen. Ring upp, logga in, gå till katalogen/ mappen där filen ligger och skriv t ex så här i prompten:

 
chmod 755 test.cgi
 
Första siffran -755 - visar de rättigheter du själv har, den andra - 755 visar gruppens rättigheter och den tredje - 755 - alla andras. En 7:a först betyder att du har rätt att
läsa (read) filen 4
skriva (write) - alltså göra ändringar i filen 2
köra/ exekvera (execute) filen 1
-------
vilket ger summan 7
Alla andra har rätt att läsa och köra filen - alltså 4 + 1= 5.
 
Alternativet
chmod 711 ger alltså dig rätt att läsa, skriva och exekvera filen; alla andra får rätt att exekvera filen.
 
Alternativet
chmod 777 ger vem som helst rätt att göra vad som helst med filen.
 
Om man vill kolla att allt blev rätt kan man skriva så här i prompten:

 
ls -l
 
(bokstäverna som eventuellt ser ut som streck är gemena (små) L)
 
Om allt blev rätt ska det då se ut ungefär så här:
 
-rwxr-xr-x test.cgi
 
eller förtydligat:
 
-
rwx r-x r-x test.cgi
 
Alltså read, write och execute för dig (röd färg här) och read och execute för alla andra
 
5 Därefter kan man ta en titt på filen och ev ta bort de radbrytartecken som kan ha hamnat sist på varje rad. Det kan se ut så här:
 
#! /usr/local/bin/perl
M^
 
Det är alltså alla M^ som ska bort och förhoppningsvis lyckas man med det genom att helt enkelt skriva följande i prompten:
 
dos2unix test.cgi > test.cgi
 
Om inte det fungerar kan man använda t ex vi för att ta bort dem. Mer om vi under MINIMANUALER - UNIX
 
6 Testa programmet genom att helt enkelt skriva filnamnet i prompten och trycka på ENTER. Om inga felaktigheter hittas printas (i exemplet) de tre raderna med HTML-kod. Hittas fel får man förslag på vad det kan vara som är fel.
Genom att testa sidan på det här sättet innan man testar det från webbläsaren kan man slippa "hotfulla" felmeddelanden av typen:

 
------------------------
 
Server Error
 
The server encountered an internal error or misconfiguration and was unable to complete your request.
 
Please contact the server administrator, [...] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
 
-------------------------
 
Det är förstås ett automatiskt genererat felmeddelande och ingen väntar sig att man ska skriva och berätta att man klockan 11.33 lördagen den 23 januari testade ett skript som hade ett snedstreck för mycket ...
 

 
7 Testa programmet från webbläsaren.

 

 
en linje
Sidan gjordes av
 
ilj
 
ilj@flowsim.se
 
en fyrkant
 
Senast ändrad 23 januari 1999.
 
Den här sidan hör hemma i ett ramsystem
hos
www.flowsim.se