Dopo le lezioni introduttive, siamo pronti ad affrontare il nostro
primo progetto. Ci occorre qualcosa di semplice, che però ci porti
ad affrontare le difficoltà più comuni che si possono trovare nei
programmi CGI.
Supponiamo di aver appena fatto un bellissimo sito, e che vogliate
tenere aggiornati i visitatori sulle novità. Potete inserire nella
pagina un apposito form dove il visitatore scrive il suo indirizzo
e-mail, per essere inserito nella lista. Ma come avviene questo
inserimento? Dobbiamo ricordarcelo a mano, scritto su un foglietto
di carta? No
ricordate che il vero webmaster non fa mai niente
a mano: è troppo faticoso. Invece, passerà ore ed ore a scrivere
piccoli script che gli automatizzino il lavoro. In questo modo,
perderà molto più tempo, ma volete mettere la soddisfazione
Il form
La maggior parte degli script viene attivata da un form html, e
il nostro non fa eccezione.
In realtà, il nostro form è molto semplice, e potrebbe essere
qualcosa del genere:
<form action=/cgi-bin/mailinglist.pl
method=POST>
Scrivi la tua e-mail: <input type=text name=email><BR>
<input type=submit value= Iscrivimi!>
</form>
Inserito in una pagina html, questo form mostra una casella di testo
e un pulsante Iscriviti!. Il pulsante causa il submit
del form, che viene inviato allo script mailinglist.pl.
Il metodo post è stato scelto per la privacy (così lindirizzo
email scritto NON compare nella barra degli indirizzi, che resta
nella memoria del computer vita natural durante, o quasi
)
Iniziamo lo script
Ovviamente scriveremo lo script in Perl, di cui siete altrettanto
ovviamente esperti (o lo state per diventare, grazie al corso di
Perl presente su Softwareplanet, il cui autore è una vostra vecchia
conoscenza
).
Per prima cosa, però, da programmatori disciplinati come siamo,
scriviamo in Italiano puro e semplice le operazioni da compiere:
è una semplice scaletta che ci servirà da promemoria.
1. Ricevere i dati dal form
2. Controllare che lemail inserita sia un indirizzo valido
3. Controllare che non sia unemail già presente nella mailing
list
4. Aggiungere lemail alla mailing list, facendo attenzione
agli accessi contemporanei allelenco
Lultimo punto può lasciarvi un po interdetti, ma non
preoccupatevi: spiegherò in dettaglio cosa significa quando ci arriveremo.
In effetti, il problema del file locking (la seconda
parte del punto 4) è uno dei più ostici
Ricevere i dati.
Il primo punto è anche il più facile. Forti della lezione 6, iniziamo
a scrivere lo script:
#!/usr/local/bin/perl
use CGI;
# Ricevi i parametri dallo script
$query = new CGI;
$email = $query->param('email');
Come vedete, abbiamo copiato lo script della lezione 6, togliendo
i due print che non ci interessavano, e cambiando largomento
da prendere. Notate che largomento di param(), e cioè
email, ha esattamente lo stesso nome del campo
di input del form. La corrispondenza, ripeto, deve essere esatta,
altrimenti non funzionerà niente.
Dopo queste 5 righe di Perl (di cui 2 commenti, quindi fanno tre
),
abbiamo già in saccoccia lemail scritta dal visitatore, nella
variabile $email. Potete verificarne il funzionamento aggiungendo
allo script queste due righe:
print Content-type:
text/html\n\n;
print <html><body>Email inserita: $email </body></html>\n;
e salvando il tutto con il nome di mailinglist.pl
A questo punto, se avete infilato il form precedente in una pagina
html di un vostro sito (o, più probabilmente, nella directory html
della vostra installazione di Apache), dovreste essere in grado
di scrivere un indirizzo email, premere su Iscrivimi!
e veder comparire sullo schermo lo stesso indirizzo che avete scritto
prima.
Notate che, in realtà, non è obbligatorio inserire un indirizzo
email: potete scrivere nella casella qualunque cosa vi venga in
mente, anche premendo a caso sulla tastiera, e lo script riporterà
fedelmente il vostro sproloquio. Infatti, per adesso non stiamo
ricevendo un indirizzo email, ma un semplice campo testo che abbiamo
chiamato email. Peccato che lassociazione tra
la parola email e un certo tipo di indirizzo (una parola
con una @ nel mezzo, ecc.) stia solo nella nostra testa,
non nel computer. Nella prossima lezione affronteremo il passo 2,
e ci assicureremo che il visitatore abbia davvero scritto un indirizzo
email valido. E, vedrete, non sarà per niente facile!
Torna all'indice Generale del corso di Corso di CGI di Software Planet