pvprm-logo.gif (14545 bytes)

Podatkovni Višemedijski Prijenos i Računalne Mreže
ZESOI, FER Zagreb
školska godina 2000/01

Vježba 3 - Web forme i CGI skripte

 

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:

  1. 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.
  2. 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).
  3. 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.)

 

Posljednja izmjena: 12.01.2001.

Stranicu održava: Miroslav Vrankić