FormRead

 

FormRead è un'utility Internet ed un helper per Netscape Navigator; permette di interpretare, leggere ed eventualmente formattare come si desidera le informazioni di una form spedita attraverso il metodo "POST" ad un indirizzo di posta elettronica; risulta quindi molto interessante sia per un utilizzo personale che come anello di una catena di script CGI.

 

Tipo Versione Descrizione Requisiti Caratteristiche Download

 

Tipo

Utility Dos/Windows9x/Unix; prodotto freeware/GNU General Public License 2.0.

 

Versione

1.2 / inglese.

 

Descrizione

Questo programma permette di leggere un form ricevuto come application/x-www-form-urlencoded spedito attraverso un'azione del tipo <form action="mailto:somebody@somewhere.on.the.web" method="POST">.
"Leggere" il form è solo uno dei suoi usi; in realtà, FormRead può essere utilizzato per trasformare delle maschere create dall'utente sostituendo i nomi dei campi con i corrispondenti valori ricevuti, o per produrre una rappresentazione testuale o html dei dati ricevuti. Senza questo programma, per processare un form sarebbe necessario scrivere o scovare delle routine per tradurre i valori dei campi del form dal formato "URL encoded" a quello richiesto dal vostro programma; ciò è abbastanza complicato da realizzare in C e molto complicato se si vuole rimanere a livello della shell. FormRead decodifica tutti i campi e li inserisce nel vostro template, per un facile utilizzo da parte di uno script della shell, un programma C, uno script Perl o quello che vi pare; inoltre, permette di avviare automaticamente un altro programma per visualizzare o post-processare quanto trasformato. FormRead può anche venire utilizzato come helper di Netscape Navigator, ed è fornito completo di codice sorgente compilabile con Borland C e GCC.

 

Requisiti

 

Caratteristiche

Un esempio è il metodo più semplice per dimostrare l'uso di FormRead. Supponiamo che abbiate quanto segue in un file HTML:

<form method="POST" action="mailto:somebody@somewhere.on.the.web" >
<input type="hidden" name="Form_Name" value="bugrep">
Qual'è il tuo nome?
<input type=text size=30 name=name>
<p>
Digita un commento:
<br>
<textarea name=_comments rows=10 cols=60></textarea>
Che problema hai? <select name=problem multiple>
<option> Non riesco a dormire
<option> La mia capra non mi ubbidisce
<option> La mia Limousine è sovraffollata
</select>
<p>
<input type=submit value=" Spedisci! ">
</form>

Quando l'utente seleziona il pulsante "Spedisci!", una lettera viene spedita a somebody@somewhere.on.the.web con il form editato dall'utente. Supponiamo che il destinatario siate voi stessi e che vogliate leggere i dati del form.
Se clickate sull'attachment della mail ricevuta, otterrete una stringa formattata in modo strano che assomiglia a ciò che avete introdotto nei campi del form. FormRead vi permette di leggere i dati trasformandoli in un formato leggibile.
Per ottenere questa trasformazione utilizzando FormRead come helper, aprite Netscape e selezionate il menu: General Preferences->Helpers. Aggiungete il tipo:

Mime type: application
Mime subtype: x-www-form-urlencoded

ed inserite nel campo "Launch the application" il pathname di FormRead.

FormRead ha la seguente sintassi:

FormRead [-u | -m | -t] [-h | -n] [-o dest | -d dir] [-e ext] filename

Ecco una spiegazione dei parametri:

-o salva il rapporto nel file 'dest', evitando di invocare il reader
-d salva il rapporto in 'dir': viene utilizzato un nome di file unico della forma 'formXX.XXX'
-e imposta l'estensione del file prodotto; di default, '.txt' per file di testo e '.htm' se il filtro HTML è attivo

-u formato Unix (le linee terminano per CR)
-m formato Macintosh (le linee terminano per LF)
-t formato Dos (le linee terminano per CR+LF, default)
-h attiva il filtro HTML
-n disabilita il filtro HTML (default)

Il campo nascosto Form_Name (dopo la definizione <form ..> nel sorgente HTML all'inizio di questa sezione) specifica il template che FormRead deve utilizzare per formattare i dati ed il file di configurazione da utilizzare. In questo caso, il template utilizzato è 'bugrep.frt' ed il file di configurazione è 'bugrep.frr'.

Il file di configurazione è semplicemente un file di testo che contiene due definizioni:

READER: programma
FORCEPAR: parametro/i

READER è il programma da eseguire sui dati formattati per mostrarli all'utente. Il campo FORCEPAR contiene parametri addizionali che possono essere utilizzati per bypassare gli argomenti sulla linea di comando.

Sia 'bugrep.frt' che 'bugrep.frr' si devono trovare nella directory di FormRead. Se il template non viene trovato o Form_Name non è specificato, viene creato un file di testo standard con la seguente disposizione:

campo: valore

Il formato del file di testo è determinato dai parametri -u/-m/-t; di default, viene creato un file di testo Dos (ogni linea è terminata da CR+LF, parametro -t); con -u le linee sono terminate dal solo LF e con -m dal solo CR. Se il parametro addizionale -h viene specificato, il testo è filtrato in HTML, per produrre una rappresentazione tabellare; di default, questo filtro è disattivato (parametro -n).

Un template può contenere qualunque cosa, eccetto caratteri nulli (ascii 0); ogni occorrenza di un nome di campo viene rimpiazzata dal rispettivo valore e nulla viene accodato al file. Pertanto, i parametri -u/-m/-t e -h/-n sono significativi solo per quei form che non hanno file template associato.

E' importante utilizzare nomi di campi che non possono occorrere nel testo introdotto dall'utente, poiché la sostituzione avviene con passaggi successivi (uno per ogni campo).

Se nessun campo Form_Name è presente o, in questo caso, se non viene trovato 'bugrep.frr', FormRead utilizza le impostazioni memorizzate in 'default.frr'.

IMPORTANTE! Dovete creare un file di nome 'default.frr' nella directory di FormRead e scrivervi almeno la linea:

READER: programma

dove 'programma' è l'applicazione standard da eseguire sui dati formattati. Questa può essere un visualizzatore di testo o anche lo stesso Netscape. In questo caso, si aggiunga la linea:

FORCEPAR: -h -e .htm

per attivare il filtro HTML ed impostare l'estensione del file prodotto a '.htm'. In alternativa, è possibile aggiungere il parametro -h alla fine del pathname nel campo "Launch the application" quando si configura Netscape.

Se non volete utilizzare FormRead come helper, ma volete salvare i dati trasformati in un file per uso successivo, specificate il parametro -o, seguito dal nome del file in cui memorizzare i dati.

Utilizzando uno script CGI che cambia il parametro che segue -o, potete utilizzare FormRead per salvare in una certa directory tutti i form ricevuti e trasformati. Lo stesso risultato lo si può ottenere utilizzando il parametro '-d' e specificando un nome di directory esistente (con o senza '/' o '\' finale); tutti i file salvati hanno la forma 'formXX.XXX', dove ogni 'X' è sostituita da una lettera dell'intervallo 'A'-'Z'. Prestate attenzione al nome della directory, poiché la sua esistenza non è verificata da FormRead.

Gli errori possono verificarsi solo quando il file dati viene aperto; in questo caso, un messaggio di errore viene stampato e visualizzato con il reader configurato. Tutti gli altri errori sono semplicemente ignorati (ma non dovrebbero mai verificarsi in condizioni normali).

Di default, i dati formattati sono scritti nella directory di FormRead su 'formdata.txt' (o 'formdata.htm' se il filtro HTML è attivo, o 'formdata' + l'estensione specificata con il parametro -e). Questo file non è rimosso quando FormRead termina, ma viene sovrascritto ad ogni invocazione. Ciò è utile sotto Windows, perché quando si esegue un applicativo Windows da un applicativo Dos quest'ultimo non attende il completamento del figlio prima di proseguire.

 

Download

Scarica FormRead (versione 1.2 per Dos/Windows)

Scarica FormRead (versione 1.2 per Unix)

 

Inizio pagina