- I form in HTML -
 
COSA SERVE PER QUESTO TUTORIAL
DownloadChiedi sul FORUM | Glossario un editor di testo
A cosa serve e come funziona l'elemento FORM

UN PRIMO SEMPLICE FORM DI LOGIN
L'elemento FORM, l'attributo action e i campi INPUT.

Un form è una porzione di una pagina HTML che permette di inviare dati al server. Sono form ad esempio quelli che si compilano per effettuare qualsiasi iscrizione, ma anche per login o altro ancora. I form sono normalmente caratterizzati dalla presenza di un elemento FORM e più INPUT. Vediamo un semplice form per effettuare un login:


<form action="http://www.dominio.com/pagina_di_destinazione.aspx">
    <input type="text" name="user" value="valore iniziale">
    <input type="password" name="pass" value="valore iniziale">
    <input type="submit" value="Invia">
</form>

Prima di tutto notiamo la presenza del tag FORM che racchiude il tutto: esso serve per delimitare l'estensione del form in quanto in una stessa pagina possono essercene più d'uno. L'attributo action dell'elemento FORM indica la pagina verso la quale inviare i dati immessi dall'utente; in questo caso è stato specificato in maniera assoluta (comprensivo di dominio e percorso completo) ma ovviamente è possibile utilizzare anche URL relativi. I tre elementi INPUT sono rispettivamente una casella di testo per il nome utente (campo user, attributo type impostato su text), una casella di testo per la password (campo pass, attributo type impostato su password, così da non mostrarla in chiaro) e infine un pulsante per effettuare l'invio dei dati (attributo type impostato su submit). Gli attributi value delle INPUT per i primi due campi indicano il valore iniziale delle caselle di testo, mentre per il pulsante indica il testo da mostrare. Gli attributi name invece specificano l'identificativo con il quale il valore del campo in questione sarà inviato al server.
Cosa accade dunque quando si clicca sul pulsante di submit? Ammettendo che user sia stato impostato su carlo e pass su segreta, il browser non farà null'altro che reindirizzare l'utente alla pagina http://www.dominio.com/pagina_di_destinazione.aspx?user=carlo&pass=segreta. Questo tipo di richiesta è definita GET (per ulteriori informazioni consultare l'articolo su GET in HTTP) ed è il comportamento predefinito per i form: si tratta semplicemente di navigare alla pagina specificata nell'attributo action specificando i campi e i valori nell'URL, come riportato sopra.
Si ricordi che negli URL non possono esserci caratteri non-ASCII quali E accentate, ma neppure spazi, segni di percento, di uguale e E commerciali: vanno opportunamente rimpiazzati con i rispettivi escape, un più (+) o %20 per gli spazi, %25 per il segno di percento e così via. Tuttavia in genere non è necessario preoccuparsi di questo fatto perché i più comuni editor HTML o linguaggi hanno apposite funzionalità per effettuare l'escape di stringhe per poter essere inserite in un URL (urlencode in PHP e Server.UrlEncode in ASP/ASP .Net).

UN FORM POST
Differenze con il metodo GET.

Abbiamo detto che come comportamento di default i form effettuano una richiesta GET. L'altro tipo di richiesta possibile è POST:


<form action="http://www.dominio.com/pagina_di_destinazione.aspx" method="post">
    <input type="text" name="user" value="valore iniziale">
    <input type="password" name="pass" value="valore iniziale">
    <input type="submit" value="Invia">
</form>

POST permette di inviare dati, ma al contrario di GET non li invia tramite URL, metodo non sicuro (gli URL possono venire memorizzati in statistiche o log facilmente) e che limita la quantità di dati da inviare (convenzionalmente l'URL non dovrebbe superare i 2'048 byte di lunghezza). L'URL di destinazione sarà dunque semplicemente http://www.dominio.com/pagina_di_destinazione.aspx: i dati saranno inviati in altra maniera (per ulteriori informazioni consultare l'articolo su POST in HTTP).

UTILIZZARE I CAMPI DI UN FORM IN ASP .NET E PHP
La sintassi per accedere a dati inviati con GET e POST nei linguaggi lato-server.

Per ottenere un valore inviato con GET in ASP .Net si usa la seguente sintassi:

<% Response.Write(Request.QueryString("user")) %>

Dove user indica il nome del campo specificato nell'attributo name del campo del form. Mentre in PHP:

<?php echo $_GET["user"]; ?>

Per i parametri POST, in ASP .Net:

<% Response.Write(Request.Form("user")) %>

Mentre in PHP:

<?php echo $_POST["user"]; ?>
<< INDIETRO by aFiGoZ