Corso di CGI

Il primo progetto: una mailing list

 

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ì l’indirizzo 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 l’email inserita sia un indirizzo valido
3. Controllare che non sia un’email già presente nella mailing list
4. Aggiungere l’email alla mailing list, facendo attenzione agli accessi contemporanei all’elenco

L’ultimo 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 l’argomento da prendere. Notate che l’argomento 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 l’email 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 l’associazione 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