Messaggi di Errore generati dal sistema o da FormMail 1.92
Come sanno bene tutti coloro che si sono cimentati con l'istallazione di CGI, l'errore è sempre in agguato. Possiamo dividerli in due categorie: Errori che riguardano il rapporto tra CGI e sistema, errori dovuti alla violazione di qualche regola interna allo script.
Errori che riguardano il rapporto tra CGI e sistema
I possibili messaggi di errore che possono arrivare dal server sono moltissimi ed alcuni possono essere generati non da un errore dell'istallatore, ma anche da uno stato di sofferenza del server. Comunque i più comuni in assoluto sono:
- Error 404 - Pagina non trovata
- Error 500 - Internal Server Error
Il primo "Error 404 - Pagina non trovata" è il più semplice da risolvere perchè si ha invariabilmente quando si è sbagliato un URL e quindi il server non trova il file richiesto. Tipico, ad esempio, è l'errore che si commette nel tag
<FORM action="http://www.tuosito.com/cgi-bin/formmail.pl"..>
Questo indirizzo potrebbe essere astrattamente esatto, ma basta che ci sia una minuscola/maiuscola diversa e il server non trova il file. In specifico se usate il file "FormMail.pl" così come scompattato dovete adattare il tag alla diversa struttura del nome.
Egualmente bisognerà stare attenti all'indirizzo della pagina di ringraziamento, se si è scelto di settare il campo "redirect" per usare una nostra pagina e non quella generata dallo script.
Più complesso invece il discorso in caso di "Error 500 - Internal Server Error", infatti i motivi possono essere tantissimi, alcuni derivanti da problemi del server (caso per altro rarissimo).
I motivi più comuni dovuti ad errore dell'istallatore sono i seguenti:
-
Lavorazione del file con un editor non adatto. Come detto alla pagina principale di questo tutorial uno dei pericoli che corre colui che setta un CGI senza usare software adatti è quello di corrompere il file introducendo inconsapevolmente caratteri di formattazione.
Rimedi: Dovete buttare quel file, non ci sono rimedi diretti affidabili. In genere ciò non è gravissimo perchè potete sempre riscaricare lo script. Se questo non è possibile, l'unica speranza è riaprire il file con l'editor che avevate usato, salvare in formato solo testo (.txt) e riprovare. Ripeto comunque che la cosa migliore è ricominciare con un file sicuro.
-
Invio al server del file (upload) non in ASCII. Le modalità di upload sono due, quella in ASCII e quella in Binary. Di norma tutti i file che contengono testo devono essere uplodati in ASCII, quindi riferendosi alle estensioni dei file appartengono a questa categoria ad esempio: .txt, .pl, .cgi, .pm, .html, .htm, .shtml, .asp, .php. Quindi bisogna fare fare molta attenzione a che questa regola sia rispettata per l'invio del file "FormMail.pl". Altrimenti ci beccheremo un bel "error 500".
Rimedi: Rifare l'upload del file avendo cura di essere sicuri che avvenga in modalità ASCII. Tutti i client FTP degni di questo nome danno la possibilità di bloccare in una modalità o nell'altra la trasmissione del file.
-
Errata indicazione dell'indirizzo dell'interprete di PERL. Come abbiamo detto nella pagina principale di questo tutorial il primo settaggio da fare nello script è l'indicazione corretta di questo indirizzo, che è composto da due parti, la prima fissa è convenzionale ed è formata dai caratteri #!, la seconda è invece il path vero e proprio del file binario (eseguibile) dell'interprete. Si deve tenere conto che sui sistemi UNIX - LINUX i path iniziano sempre con /.
Rimedi: Verificare con assoluta sicurezza il dato da immettere. Su come fare per trovarlo vedasi la pagina apposita pubblicata in questo sito.
-
Errori sintattici nello script. Mentre l'html è di bocca buona, nel senso che perdona molti errori, il perl no... è cattivissimo, basta sbagliare una virgola (non è un modo di dire !!!), lo script non viene eseguito e viene generato un messaggio d'errore. In generale quindi, è bene non mettere le mani nel codice se non si sa molto bene quello che si sta facendo, oppure, se si vogliono fare esperimenti, avere la coscienza che la probabilità di procurare un errore è molto elevata.
Rimedi: Nel caso di FormMail in cui ci sono da settare solo tre righe la cosa migliore è rifare tutto d'accapo avendo cura di conservare la sintassi spiegata nella pagina principale. Si tenga presente che in PERL l'apice singolo e quello doppio hanno significati praticamente opposti per cui non sono fungibili, e che è fondamentale il rispetto della punteggiatura. Se si è seguito il mio consiglio e ci si è procurati l'editor DzSoft Perl Editor e si è istallato anche l'interprete di PERL, allora si potrà usare la comodissima funzione "Sintax check" che individuerà l'errore e indicherà la riga corrispondente o la successiva.
-
Errato settaggio del chmod del file. Come detto nella pagina principale di questo tutorial perchè venga eseguito sui sistemi UNIX -LINUX FormMail.pl deve essere reso eseguibile tramite assegnazione del chmod 755.
Rimedi: Verificare il chmod assegnato e adeguarlo. Per sapere cosa è il chmod e come si setta vai alla pagina principale della sezione CGI di questo sito, dove troverai molti link a pagine che ti possono dare spiegazioni in merito.
Infine possono esserci errori che non generano avvisi. Ad esempio ciò si può verificare quando si sbaglia l'indirizzo del programma di spedizione della mail "sendmail" , o come quando si sbaglia l'indirizzo del destinatario nel campo "recipient". Tutto sembra essere andato bene, ma la mail non arriva.
Errori generati dallo script per mancato rispetto di una sua direttiva
FormMail ha un sistema abbastanza completo di controlli interni per evitare che se ne faccia un uso scorretto. I possibili messaggi di errore generati da FormMail sono 4:
Questo messaggio viene generato quando la pagina da cui proviene la richiesta di esecuzione allo script non appartiene ai siti indicati nell'array @referers.
Ciò può avvenire per due motivi:
-
Qualcuno, non autorizzato da un altro sito, sta tentando di usare il tuo FormMail. Questo controllo è necessario perchè questo script è stato pensato per servire molti siti contemporaneamente, per cui i settaggi non sono contenuti nello stesso script (come avviene di regola), ma nel codice della pagina, che come si sa può trovarsi ovunque. Ciò comporta che, senza quel controllo, se qualcuno istallasse nel proprio sito una pagina in cui ci sono i settaggi e nel tag form l'URL al tuo FormMail potrebbe usarlo a tua insaputa.
-
Hai sbagliato a settare l'array @referers. Per vedere come fare un settaggio corretto vai alla pagina principale di questo tutorial.
Questo messaggio viene generato quando c'è un errore nell'istruzione "method" del tag form. In particolare bisogna controllare che ci sia scritto:
<FORM method="POST" action="http://www.tuosito.com/cgi-bin/FormMail.pl">
In teoria si può usare anche il metodo GET, ma ciò è sconsigliabile se si inserisce anche una textarea, infatti con GET non è possibile passare più di 256 caratteri, URL compreso.
Questo messaggio viene generato in due casi: il primo quando è stato omesso o è formalmente scorretto l'indirizzo email del destinatario inserito nel campo:
<INPUT type="hidden" name="recipient" value="nome@tuamail.com">
Controlla e inserisci o correggi quel campo.
Il secondo caso si ha quando un indirizzo email inserito
nel tag recipient non corrisponde alla lista contenuta nell'array
@recipients, per il cui settaggio riinvio alla
pagina principale di questo tutorial.
Questo messaggio viene generato quando è stata omessa la compilazione di qualche campo dichiarato obbligatorio tramite il campo "required". Non si tratta di una segnalazione di errore rivolta all'istallatore, ma all'utilizzatore. La sua utilità sta nel fatto che indica con precisione quali sono i campi in cui si è verificato l'errore.
Con questo abbiamo finito l'analisi degli errori più comuni in cui può incappare l'istallatore di questo bello script.
| Indice del sito |
