ePrometeusCorsoLinuxLinux
testi articoli
Testi Articoli  Download
Home | Introduzione | Panoramica | Form | Analisi Log | 
CorsoJava è ora Video! Free for all!
Clicca Qui!
Tutorial Perl
FORM IN PERL
INVIARE MAIL DAL WEB
RICHIAMI DI FORM E CGI
STRUTTURA DEL PROGRAMMA
IL PROGRAMMA PRINCIPALE
DECODIFICA DELL'INPUT
VERIFICA DELL'INPUT E INVIO DI UNA MAIL


<<< STRUTTURA DEL PROGRAMMA >>>

Il meccanismo delle form non è particolarmente interattivo: l'utente compila il modulo e poi lo invia, premendo un bottone sulla pagina. Il nostro script viene allora attivato e legge i dati che sono stati inseriti, li elabora e decide cosa fare. Nel nostro caso le possibilità sono due: o il modulo è corretto, oppure contiene errori. Se l'utente ha riempito correttamente tutti i campi possiamo procedere ad inviare la mail, altrimenti dobbiamo richiedere che la form sia compilata correttamente.

Se decidiamo di far ricompilare la form, la dobbiamo ristampare con un messaggio di errore che dica quale campo è sbagliato. Notiamo che sarebbe tedioso re-immettere tutto da capo ogni volta che si commette un errore (specialmente con un modulo con decine di campi!). Quindi quantomeno ci dobbiamo preoccupare di ristampare la form con i dati che l'utente ha appena immesso per dargli modo di correggerli. Se invece la form è corretta possiamo procedere, e presumibilmente oltre a inviare la posta mostreremo un messaggio al nostro utente che dica che la mail è stata inviata.

Facciamo qualche osservazione su come deve essere organizzato il nostro programma. Innanzitutto l'HTML che contiene la form deve essere generato dal programma: la prima pagina e le successive sono simili ma a parte la prima, le successive devono per forza essere elaborate da programma (dobbiamo produrre output in base a ciò che l'utente immette e non lo possiamo sapere a priori - quindi non possiamo usare pagine fisse).

In particolare il nostro programma è autocontenuto, nel senso che è un file solo che genera tutte le possibili pagine HTML inviate all'utente. E' un documento “attivo”, che si comporta in maniera diversa interagendo con l'utente.

I programmi CGI possono agire solo in seguito ad una submit o quando viene seguito un link che li attiva. Nel breve tempo in cui sono attivi (non possono fare aspettare molto l'utente...) devono fare tutto il loro lavoro e, cosa molto importante, non si ricordano nulla delle invocazioni precedenti. Infatti un programma CGI nasce all'attivazione e muore quando ha prodotto i suoi risultati.

L'unico modo di mantenere un filo logico in una sequenza di HTML è quello di comportarsi come una macchina a stati. Lo stato viene mantenuto dalle pagina HTML prodotta, in particolare utilizzando i campi di INPUT di tipo HIDDEN. I campi HIDDEN sono campi di una form come tutti gli altri solo che non generano nessun elemento di interfaccia e non sono modificabili. Il loro scopo è di passare informazioni tra una invocazione e l'altra di programmi CGI. Ad ogni invocazione un programma CGI effettua una transizione di stato: legge lo stato, esamina l'azione che l'utente ha svolto in quel particolare stato, calcola il nuovo stato, produce una pagina HTML che mostra i risultati e memorizza il nuovo stato utilizzando i campi HIDDEN.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com