Svrha vježbe:
Stjecanje iskustva sa osnovama izrade web formi i CGI
skripti.
Zadatak:
- Izraditi web stranicu koristeći neke elementarne forme za unos
podataka. Stranica može npr. služiti kao online anketa o nekoj
proizvoljnoj temi (npr. istraživanje poznavanja programskih jezika gdje
će anketirana osoba morati označiti kvadratiće uz odgovarajuće
programske jezike).
- CGI skriptu je potrebno izraditi u Perl-u. Perl je odabran pošto je
(interpretirani) skriptni jezik (pa ga nije potrebno kompajlirati kao
npr. C programe), a među ostalim omogućava i vrlo napredne funkcije
obrade i formatiranja teksta.
Sve informacije o izradi formi i CGI skripti mogu se naći na niže navedenim
web adresama.
- Stranicu postaviti na web server predmeta (uputa iz prethodne vježbe).
Svim CGI skriptama obavezno je dodati nastavak cgi (npr.
skripta.cgi). Naime, prilikom uploadanja korištenjem
FTP protokola svim će datotekama sa nastavkom cgi automatski biti
pridodan x bit, tj. biti će omogućeno da ih se može pokretati. U
prvoj liniji skripte obavezno je navesti put do Perl interpretera. Na našem
serveru to će izgledati ovako:
#!/bin/perl
Uvod:
CGI je kratica za Common Gateway Interface. On omogućava izvršavanje
funkcija na strani servera. Pokretanje tih funkcija se vrši tako da
korisnik u svojem web pregledniku pošalje zahtjev za odgovarajućim
CGI programom ili skriptom (obično odabirom nekog linka ili
"submit" tipke). Podaci koje je korisnik unio unutar forme
prenose se kao dodatni parametri i postaju ulazni parametri tražene
CGI skripte. CGI programi ovisno o podacima koje je korisnik u web
pregledniku unio generiraju određene rezultate koje vraćaju natrag
korisniku (najčešće u formi HTML dokumenta, ali nije nužno).
Za pisanje CGI programa i skripti obično se koristi C, C++,
Perl, TCL, shell skripte, Python ili nešto treće. CGI programi (ili
skripte) mogu se pokretati samo iz direktorija koji su za to namijenjeni.
Naime, u konfiguraciji web servera (npr. Apache) mora biti omogućeno da
se u nekom direktoriju mogu izvršavati CGI skripte (ili programi). Obično
se omogućava da se CGI skripte izvršavaju isključivo u cgi-bin
poddirektoriju web servera (no, za potrebe ovih vježbi svaki će student
moći pokretati CGI skripte u svom vlastitom direktoriju). Isto
tako, potrebno je podesiti da se skripte smiju izvršavati (chmod naredba
u UNIX-u).
Neki korisni savjeti pri pisanju CGI skripti:
- Postoji RFC (request for comments) za HTTP (rfc2068)
Ukoliko zapnete, nije ga loše pogledati.
Npr, headeri trebaju završavati s CRLF (\r\n) umjesto samo s \n iako
i jedno i drugo radi.
- Unix ne voli CRLF u skriptama. Treba iz dototeke maknuti CR barem u
onom prvom retku u kojem je #!/bin/perl
Koristiti neki editor != NOTEPAD.EXE koji zna editirati dototeku bez
da "puca" CRLF-e po svuda. Preporuka je UltraEdit-32 (www.ultraedit.com).
Drugi način da se to učini jest da se koristi ASCII prijenos
datoteka FTP-om (na vlastitu odgovornost dakako). To će iz dototeke
maknuti CR-ove (naravno to treba koristiti samo za tekstualne
dokumente).
- Da bi sam kod CGI skripte bio što jednostavniji preporučljivo je
koristiti neke već gotove biblioteke funkcija koje se pozivaju iz
glavne Perl skripte. Jedan vrlo koristan library dobar za početnike
je cgi-lib.pl, verzija 1.14. Sve o njemu možete doznati na
adresi http://cgi-lib.berkeley.edu/.
Referentna dokumentacija:
The Most Simple Intro to CGI
Working With Forms
CGI
Environmental Variables
Using Perl for Web Programming
(dovoljno je proučiti prva tri poglavlja)
cgi-lib.pl library
Primjeri:
Pregled elemenata formi
Primjer forme za
zbrajanje dva broja
Alati:
WWW browser (Internet Explorer, Netscape)
editor (notepad, wordpad, edit, itd.)
|