 |

mer om CGI-skript längre ner


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/perlM^
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.

Sidan gjordes av

ilj@flowsim.se

Senast ändrad 23 januari 1999.
Den här sidan hör hemma i ett ramsystem hos www.flowsim.se
|  |