artemate uno
-->> Benvenuti nel sito ARTEMATE  

I MODULI (FORM)

Sono i moduli da compilare che si trovano su internet e servono per registrarsi ad un determinato servizio (ad esempio: area riservata ) o per trasferire dei valori o file in una pagina o in un sito web.

<form>           </form> tag di apertura e chiusura di un form


ESEMPIO FORM PER CREARE UN BOTTONE CON UN LINK a un file

<form method="post" action="phpinfo/phpinfo.php" target="_blanck">
<button type="submit"> PHP INFO</button> </form>

<form method="GET" action="filephp/benvenuto.php" target="_blanck">
<input type="submit" value="benvenuto" > </form>

ESEMPIO DI FORM PER L'INVIO DI DATI ad un file read.php

<form method="post" action="read.php">
inserisci tuo nome <input type="text" name="nome"><br>
inserisci la tua mail <input type="text" name="mail"><br>
<input type="submit" value="spedisci">
</form>

METHOD, specifica azione da svolgere sui dati, valori possibili:"GET", "POST" o "ENCTYPE",
method="GET" i dati spediti codificati (max 255 caratteri)
method="POST" i dati ricevuti direttamente :quantita' illimitata di caratteri.
method="ENCTYPE", per indicare il tipo di MIME usato per il trasferimento delle informazioni.

I tipi MIME (Multipurpose Internet Mail Extension) usati per riconoscere la natura dei file sono composti da due parti, tipo principale / tipo specifico come ad esempio: "image/gif" (immagini di tipo gif), "text/plain" (testo puro) e molti altri.
Il tipo di MIME da usare per trasferire i dati dal form al server HTTP è:
"application/x-www-form-urlencoded" e deve esserci solo nel caso si usi il METHOD "POST";
questo valore è comunque quello di default dell'attributo ENCTYPE. serve a comunicare al server che i dati saranno inviati con lo standard "POST" ma codificati alla stessa maniera che con il metodo "GET".
ACTION= URL del file *.cgi o*.php che riceve i dati o link del form
TARGET, per definire una nuova finestra dove visualizzare la risposta elaborata dal CGI.

La creazione di un modulo consta di due fasi:

1) impostazione dei tag per la creazione del modulo, dei campi e del tasto di spedizione;
2) creazione di uno script php o asp per risevere i dati su server. I dati vengono resi disponibili sotto forma di variabili globali:
$HTTP_GET_VARS E $HTTP_POST_VARS (array associativi )

 

I CONTROLLI DI UN FORM

Gli elementi all'interno dei moduli sono elementi di TESTO chiamati "controlli"; sono:

1- <INPUT> per creare vari tipi di input diversi: Pulsanti, testo, password...ecc
2- <SELECT> per creare menu a scorrimento le cui opzioni sono indicate con il tag <OPTION>;
3- <TEXTAREA> per l'immissione di righe di testo multiple.
4- <FIELDSET> per raggruppare più controlli di un form.
I primi tre prevedono gli 'attributi
NAME nome della variabile o del campo, se form-mail il titolo (subject) del msg
VALUE con il quale si assegna un valore alla variabile o al campo;
valore iniziale (se type=text) o scritta sul bottone (type=SUBMIT)


Il tag di base per la definizione degli elementi di un form e' <INPUT>, che viene utilizzato per aggiungere pulsanti, menu di scelta, password ecc. a <INPUT> possono venire assegnati 8 valori differenti, che andiamo a spiegare.
nella colonna a sinistra compare il codice per il passaggio dei valori in php.

type="TEXT"

 

$nome=$_POST['nome'];

<INPUT type="TEXT" name="nome" maxlength="40" size="33" value="Il tuo nome">

Questo valore crea i tipici campi di testo, dove usualmente vengono richiesti dati quali il nome o l'indirizzo e-mail. E' un valore usato soprattutto per informazioni non predefinite che variano di volta in volta. TEXT ha tre attributi aggiuntivi presenti anche nell'esempio: maxlength (il numero massimo di caratteri inseribili nel campo, oltre il quale non e' possibile aggiungere), size (la larghezza della stringa all'interno della pagina) e value (visualizza un testo di default all'interno della stringa).

type ="HIDDEN"

$codice=$_POST['codice'];

<INPUT TYPE=HIDDEN NAME=codice VALUE="test123">

invia un campo nascosto

type="PASSWORD"

&passw=$_POST['passw']

<INPUT type="PASSWORD" name="passw" maxlength="10" size="10">

Questo campo funziona similmente a TEXT visto in precedenza, ma con una piccola differenza che ne giustifica il nome: quando si digita all'interno della stringa bianca, non appaiono le lettere ma i classici asterischi delle password. In realta' i dati non vengono in alcun modo codificati, per cui rimane un'insicurezza di fondo che questo comando non elimina.

type="CHECKBOX"

$int1=$_POST['int1'];

$int2=$_POST['int2'];


<INPUT TYPE="CHECKBOX" NAME="int1" VALUE="computer" CHECKED>&nbsp;Computer
<INPUT TYPE="CHECKBOX" NAME="int2" VALUE="musica">&nbsp; Musica
<INPUT TYPE="CHECKBOX" NAME="int3" VALUE="sport">&nbsp; Sport

Questo attributo viene solitamente utilizzato per informazioni del tipo "si/no" e "vero/falso". Crea delle piccole caselle quadrate da spuntare o da lasciare in bianco. Se la casella e' spuntata, input restituisce un valore al CGI, al contrario non restituisce alcun valore. Checked controlla lo stato iniziale della casella, all'atto del caricamento della pagina.

SE il name è un indice prelevato da un database con query select e while:
<input type="checkbox" name="'.$row['idcircolare'].'" />

viene ripresa con un ciclo for con questo codice:

for ($i = 1; $i<= $massimo; $i++)
{
if (isset($_POST[''.$i.'']))
{ echo $_POST[''.$i.'']; echo "=".$i."-" ;}

type ="FILE"


esempio: FORM PER TRASFERIMENTO FILE
<FORM ENCTYPE="multipart/form-data" ACTION="/cgi-bin/cgi-prova.sh">
File da inviare:&nbsp;<INPUT TYPE="FILE" NAME="file">
<INPUT TYPE="SUBMIT" SIZE="5" VALUE="INVIO">
</FORM>

<form enctype="multipart/form-data" action="inserimento.php" method="post">
<fieldset>
<legend>DATA E TITOLO DELLA CIRCOLARE</legend>
<label>gg-mm-aa: Titolo circolare
<input name="titolo" size="80" maxlength="200" type="text"> </label>
</fieldset> <fieldset>
<legend>FILE</legend>
<input name="MAX_FILE_SIZE" value="1048576" type="hidden">
Inserisci il file relativo alla circolare: <input name="fileutente" type="file">
</fieldset> <fieldset>
<legend>Password</legend>
<label>inserisci la password di amministratore : <input type=password size=10 name=pass>
</label>
</fieldset> <fieldset>
<legend>PUBBLICA CIRCOLARE</legend>
<input value="Pubblica" type="submit">
</fieldset> </form>

NOTE: Il controllo "FILE" permette di inviare un file al programma CGI;
presenta un bottone "BROWSE" o "SFOGLIA" inserito automaticamente per permettere
la ricerca del file da inviare all'interno della macchina locale.
Si noti che nel caso di invio di un file si deve usare l'attributo di <FORM>
ENCTYPE con valore "multipart/form-data".

type="RADIO"

$giudizio=$_POST['giudizio']

<INPUT type="RADIO" name="giudizio" value="sufficiente">
<INPUT type="RADIO" name="giudizio" value="buono">
<INPUT type="RADIO" name="giudizio" value="ottimo">



Questo attributo ha funzioni simili a quello visto in precedenza, ma presenta piu' scelte possibili. Selezionando una voce tra quelle presenti, qualora abbiano tutte valore "name" identico, si deselezionano automaticamente le altre.

type="SUBMIT"

<INPUT type="SUBMIT" value="spedisci">


Il classico bottone che invia il form con tutti i suoi contenuti. La grandezza del bottone dipende dalla lunghezza del testo.

type="RESET"

<INPUT type="RESET" value="Ricomincia">

Bottone che reimposta l'intero form eliminando i dati inseriti.

type="IMAGE"

<INPUT type="IMAGE" src="pulsante.gif">


Funzione simile a quella del tasto "SUBMIT" ma con la differenza che al posto del bottone di default, viene visualizzata un'immagine.

TEXTAREA

<TEXTAREA cols=40 rows=5 WRAP="physical" name="commento"></textarea>


Textarea e' utilizzato per commenti o campi che prevedono l'inserimento di molto testo. La larghezza e' impostata da "cols" e l'altezza da "rows". WRAP="physical" stabilisce che qualora il testo inserito superi la larghezza della finestra, venga automaticamente riportato a capo.

SELECT

<SELECT size=1 cols=4 NAME="giudizio">
<OPTION selected Value=nessuna>
<OPTION value=buono> Buono
<OPTION value=sufficiente> Sufficiente
<OPTION Value=ottimo> Ottimo
</select>


Select e' un elemento che permette la creazione di elenchi a discesa con varie possibilita' di scelta.

Elemento FIELDSET
<FIELDSET> per raggruppare più controlli di un form fino al tag di chiusura </FIELDSET>;
<LEGEND> per aggiungere una legenda posizionandola con l'attributo ALIGN.

attributo TABINDEX

utilizzabile per tutti i controlli di un form, per si può cambiare l'ordine di selezione dei controlli all'interno di un modulo.
TABINDEX="numero"; i numeri alti hanno la precedenza rispetto a quelli bassi o negativi. I caso di assenza l'ordine di selezione dei controlli corrisponde a quello di apparizione all'interno del modulo.

FORM MAIL


<FORM ACTION="mailto:artemate@libero.it" METHOD="POST">
Commento: <INPUT TYPE="TEXT" NAME="comment" size="57"> textarea vuota
<INPUT TYPE="submit" VALUE="INVIA !"> </FORM> bott submit invia

<INPUT TYPE=HIDDEN NAME=MAILFORM_URL VALUE="http://www.tuosito.it">
compilato e spedito correttamente il form, da' in risposta una pagina HTML successiva

<INPUT TYPE=HIDDEN NAME=MAILFORM_SUBJECT VALUE="Titolo del form">

Questo codice determina il titolo (subject) del messaggio che riceverai via e-mail, e che conterra' il contenuto del form. E' molto utile ricevere messaggi con un proprio titolo, soprattutto per chi usa dei filtri per la posta, ma anche per l'indicizzazione della corrispondenza.