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.
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.
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 9x, perché quando si esegue un applicativo Windows da un applicativo Dos quest'ultimo non attende il completamento del figlio prima di proseguire.
Requisiti:
Versioni |
Utility Dos/Windows 9x/Unix; prodotto freeware/GNU General Public License 2.0.
Ultima versione: 1.2 / inglese.
Download |
Scarica FormRead (versione 1.2 per Dos/Windows)
Scarica FormRead (versione 1.2 per Unix)
![]() |
Inizio pagina |