Form e script CGI

Di solito gli script CGI e le form vivono insieme. Infatti di solito gli script ricevono dei dati dagli utenti, elaborano le informazioni ed infine mostrano i risultati agli utenti (di solito costruendo pagine web 'al volo'). Comunque potresti eseguire uno script CGI semplicemente cliccando su un link (cio' si verifica quando il link punta ad uno script CGI invece che ad un documento HTML). Percio' per scrivere script CGI devi sapere come funzionano le form. Una form e' solo una pagina web che contiene dei campi di input (per digitarci delle informazioni dentro) ed uno o piu' bottoni (per 'sottomettere' una form ed inviare i dati). Inoltre devi specificare lo script CGI che trattera' quelle informazioni. Ma cominciamo con l' osservare una semplice form. Ecco il codice HTML:

<html><head><title>This is a simple form</title></head>
<body>
<FORM METHOD="GET" ACTION="http://www.anyserver.com/cgi-bin/formsname">
<p>Type something here: <INPUT NAME="nameoffield"></p>
<p>INPUT TYPE="SUBMIT"></p>
</FORM>
</body></html>

<FORM></FORM>

Con questi tag stai dicendo al browser web (il tuo client): 'Ehi browser! Questa e' una form e devi leggerla per inviare i dati al server specificato'.

METHOD="GET"

Tramite l' opzione 'METHOD', stai dicendo al browser web COME deve inviare i dati. Puoi specificare 2 modi: GET o POST. Se specifichi GET come metodo, i dati saranno inviati accodandoli alla fine dell' URL, altrimenti, usando il metodo POST, i dati saranno inviati come un distinto oggetto HTML al server web (vedremo piu' tardi la reale differenza tra questi metodi). Attenzione: non ti confondere con i metodi HTML e quelli HTTP! Qui sto parlando di METODI HTML (come inviare i dati). Il metodo GET HTTP per esempio (contenuto all' interno della 'chiaccherata' tra un client ed un server), e' una cosa completamente differente (infatti significa che il server web deve inviare un dato documento).

ACTION="http://www.anyserver.com/cgi-bin/scriptname"

Con l' opzione 'ACTION', stai dicendo al server web COSA deve fare, o meglio, QUALE SCRIPT deve girare e DOVE si trova detto script. Percio' anyserver eseguira' lo script scriptname, che si trova all' interno della directory cgi-bin. Cgi-bin non e' solo una semplice directory: e' una directory particolare. Infatti puoi configurare un server web per fargli sapere dove puo' trovare gli script CGI. Di solito gli script CGI si trovano all' interno della directory cgi-bin. Comunque il server web puo' essere configurato in modo da eseguire tutti i file con estensione 'cgi' (in questo caso il file 'script.cgi' per esempio, puo' essere eseguito come script CGI dal server web).

INPUT NAME="nameoffield"

Questo e' un campo di input, e qui gli utenti possono digitare le informazioni richieste. Lo script CGI guardera' all' interno di una variabile (in questo esempio il nome di tale variabile e' 'nameoffield').

INPUT TYPE="SUBMIT"

Beh, questo e' solo un bottone per sottomettere la form. Una volta compilata la form, gli utenti possono inviare i dati premendo qusto bottone. Se specifichi GET come metodo, i dati contenuti all' interno dei campi INPUT vengono accodati alla fine dell' URL, dopo il simbolo '?'. Inoltre tutti i campi e i loro rispettivi nomi sono separati dal simbolo '='. Nel precedente esempio, quando premi il bottone submit, il browser web compone questo URL:

http://www.anyserver.com/cgi-bin/scriptname?nameoffield=something

Se hai piu' campi di input, il browser web mette il simbolo '&' fra ogni campo. Per esempio, suponi di avere 2 campi di input chiamati 'field1' e 'field2', bene l' URL sara':

http://www.anyserver.com/cgi-bin/scriptname?field1=something&field2=something

Dove 'something' e' qualsiasi cosa l' utente ha digitato all' interno del campo. Se l' utente digita 2 o piu' parole all' interno di un campo di input, il browser mette un simbolo '+' tra ognuno di loro. In altre parole sostituisce gli spazi col simbolo '+'. Percio' supponi di avere 2 campi: 'yourname' e 'yourage'. Poi supponi che l' utente compili la form cosi':

yourname = Robert Clark

yourage = 99

Bene, l' URL sara':

http://www.anyserver.com/cgi-bin/scriptname?yourname=Robert+Clark&yourage=99

Tutti i caratteri speciali come =, &, #, £, %, / e cosi' via, vengono preceduti da '%'. cosi' nell' esempio precedente l' utente potrebbe scrivere:

yourname = Rober Clark & Company

E l' URL dopo il nome dello script diventera':

yourname=Robert+Clark+%&+Company&yourage=99

Attenzione: quando l' utente preme il bottone submit, il browser web costruira' l' URL, e le variabili saranno inviate accodate alla fine dell' URL stesso. Quando il server web riceve i dati, le variabili vengono memorizzate all' interno di una particolare variabile d' ambiente chiamata PATH_INFO. Lo script CGI puo' leggere quella variabile, ma deve decodificarla, perche' contiene tutti gli indesiderabili simboli come &, +, = e cosi' via. Vedremo le variabili d' ambiente successivamente.

<<<indietro Home CGI avanti >>>

Copyright © 1998-99 M. Silvestri