#!/usr/local/bin/perl # report.pl # Autore: Alan Levine #> # Genera un resoconto formato web page che puo' essere # inviata dagli utenti del corso Writing HTML. Questo # script ritorna un form formattato in HTML per i dati # della pagina web e ne manda una copia agli istruttori # via email. # #< # modulo in perl require("CGI.pm"); # carica la libreria CGI.pm per gestire input ed oggetti use CGI qw(:standard :cgi-lib); use CGI::Carp qw(fatalsToBrowser); # converte le variabili del form in un array &ReadParse; # stampa le intestazioni html ritornate print header; # assume la data e l'ora corrente dal server $date_str= `date +"%a, %B %e, %Y at %I:%M %p"`; # manda una email se contrassegnato if ($in{'rep_email'} eq "y") { &send_email }; if ($in{'rep_web'} eq "y") { # crea una web page se contrassegnato &send_web; } elsif ($in{'rep_email'} ne "y") { # manda un messaggio d'errore se non e' contrassegnata nessuna opzione &send_err; } exit; # ----------------------------------------------------- # subroutine per una versione email del resoconto sub send_email { if (!($in{'instructor'} =~ /pele.bigu.edu/)) { # questo e' l'indirizzo falso, di modello, cosi' si # procede solo se viene sostituito # Questo e' il percorso del file del programma mailer, # che puo' variare a seconda dei vari siti web $mail_thing = "/usr/sbin/sendmail"; # invia la stringa della mail open(SENDMAIL, "| /$mail_thing -t -n "); print SENDMAIL <<"End_of_Mail"; From: $in{'email'} To: $in{'instructor'} Reply-to: $in{'email'} Subject: Volcano Web Report from $in{'name'} ------------------ 8< ---------------------------------- This Volcano Web report was written on $date_str and sent from IP $ENV{"REMOTE_ADDR"} -------------------------------------- student information -------------------------------------- NAME : $in{'name'} EMAIL : $in{'email'} CODE : $in{'pass'} -------------------------------------- volcano report -------------------------------------- VOLCANO : $in{'vname'} LOCATION - LATITUDE : $in{'vlat'} LOCATION - LONGITUDE : $in{'vlong'} TYPE : $in{'vtype'} ACTIVITY : $in{'active'} : $in{'vdate'} FEATURES : $in{'note1'} : $in{'note2'} : $in{'note3'} : $in{'note4'} : $in{'note5'} OTHER INFORMATION : $in{'info'} -------------------------------------- sources -------------------------------------- REFERENCES : $in{'ref1'} : $in{'ref2'} : $in{'ref3'} ======================================= this report was created as an example of the Writing HTML tutorial at http://www.mcli.dist.maricopa.edu/tut/ ======================================= End_of_Mail ; } # scrive una pagina di risposta se stiamo utilizzando la # sola posta elettronica if ($in{'rep_web'} ne "y") { print <<"end_html";
Il tuo rapporto su $in{'vname'} e' stato inviato via e-mail al tuo istruttore.
end_html } } # ----------------------------------------------------- # subroutine per scrivere il resoconto come pagina web sub send_web { print <<"end_html";| informazioni studente | |
| nome | $in{'name'} |
| $in{'email'} | |
| resoconto volcano | |
| nome vulcano | $in{'vname'} |
| posizione | latitudine= $in{'vlat'} longitudine=$in{'vlong'} |
| tipologia | $in{'vtype'} |
| attivita' | $in{'active'} data dell'ultima eruzione conosciuta= $in{'vdate'} |
| caratteristiche | $in{'note1'} $in{'note2'} $in{'note3'} $in{'note4'} $in{'note5'} |
| more info | $in{'info'} |
| fonti | |
| riferimenti |
|
| report stats | |
| data | $date_str |
| copies | '; print "rapporto mandato via email a $in{'instructor'} |
Devi contrassegnare almeno una delle opzioni per il formato elencate sotto invia rapporto. Per favore, usa il bottone back del tuo web browser per tornare al form e scegliere se vuoi che questo resoconto sia generato come una web page, spedito come email al tuo istruttore, o entrambi.
end_html }