Form, ininformatica, il termine (letteralmenteformulario,modulo)[1] indica la parte diinterfaccia utente di un'applicazione web che consente all'utenteclient di inserire e inviare alweb server/application server uno o piùdati liberamente digitati dallo stesso sullatastiera attraverso l'uso di componenti grafici dettiwidget presenti sull'interfaccia stessa; per descriverlo può essere utile la metafora della "scheda da compilare" per l'inserimento di dati. Nella maggior parte dei casi il termine è riferito a form contenuti in unapagina web: ad esempio, lecaselle di testo e imenù a tendina di una pagina di registrazione o dilogin costituiscono un form.
Più in particolare, l'elemento HTML <FORM> è usato per realizzareform in unapagina web. InHTML sono considerati parte del form anche i pulsanti ripristina o cancella e invia. Di solito i form vengono utilizzati per inviare dati ad undatabase server oppure per inviaree-mail.
Si tratta dunque di un elemento che inserisce contenutiinterattivi per l'utente nella pagina web o in un'applicazione web inserendosi nel contesto delweb dinamico. Tutti i dati di un form una volta inviati dalweb browser delclient al web server devono essere trattati o elaborati da unapagina web dinamicalato server.
Il termine è usato, in senso più esteso, nell'ambiente di sviluppoVisual Basic per indicare una finestra principale dell'applicazione, in cui possono essere inseriti elementi visuali come pulsanti o caselle di testo.
Tra i sottoelementi possibili di un form abbiamo:
<form>...</form>
<method=post action="url">
<input type="text" name="nome" value="valore" size="dimensione">
<input type="file" name="nome">
<input type="password">
<textarea>...</textarea>
cols
(colonne) erows
(righe). Il testo tra i tag apparirà nell'area di testo al caricamento della pagina.<select name="foo">...</select>
<option>...</option>
<input type="radio">
<input type="checkbox">
<input type="radio">
<input type='button....></input>
oppure<button></button>
<input type="submit" value="NAME">
<input type="image" border=0 name="NAME" src="name.gif">
<input type="reset">
HTML 5 ha introdotto nuovi elementi ai form[2]:
<input>
L'elemento<input>
ha nuovi valori per l'attributotype
.
search
: un campo di ricerca.tel
: controllo per la modifica di un numero telefonico. È possibile utilizzare gli attributipattern
emaxlength
per limitare i valori immessi dall'utente.url
: controllo per la modifica di unURL.email
: controllo per la modifica di un indirizzo email.<input>
list
: l'ID di un elemento<datalist>
il cui contenuto, che consiste in elementi<option>
, dovrà essere utilizzato come suggerimento.pattern
: Un'espressione regolare usata negli<input>
di tipotext
,tel
,search
,url
, edemail
.form
: Una stringa che indica a quale elemento<form>
è figlio l'input.formmethod
: Una stringa che indica il metodoHTTP (GET o POST) da usare per l'invio dei dati al server.x-m-errormessage
: Contiene un messaggio quando il campo non supera la validazione (solo perFirefox).<form>:
novalidate
: Questo nuovo attributo fa in modo che il form non richieda la validazione all'utente.Elemento<datalist>
<datalist> racchiude una lista di elementi <option> da suggerire all'utente durante la compilazione di un <input>.
Elemento<output>
<output>
rappresenta il risultato di un calcolo. Si usa l'attributofor
per specificare una relazione tra un elemento<output>
e altri elementi del documento (input o parametri).
Attributo<placeholder>
<placeholder>
si applica agli elementi<input>
e<textarea>
, fornendo all'utente un suggerimento su cosa dovrebbe immettere nel campo.
Attributo <autofocus>
<autofocus>
evidenzia un campo. Può essere assegnato ad un solo campo per ciascun form. Si applica agli elementi<input>
,<button>
,<select>
e<textarea>
.
required
nell'elemento<input>
,<select>
e<textarea>
indica che il campo deve essere compilato.pattern
nell'elemento<input>
stabilisce il valore in modo che corrisponda una specifica cifra.min
emax
nell'elemento<input>
specifica il valore minimo e massimo che può essere immesso.step
nell'elemento<input>
vincola i valori che possono essere immessi.maxlength
negli elementi<input>
e<textarea>
stabilisce il numero massimo di caratteri che l'utente può immettere.url
eemail
nell'attributotype
restringono i valori accettati rispettivamente ad un URL o ad un indirizzo e-mail valido.Al di là degli specifici impieghi descritti sopra, in informatica (in generale: nelle informazioni digitilizzate) per form s'intende unamaschera (omodulo) ovvero un'area, solitamente strutturata in righe e colonne (i cui bordi o sfondi possono anche essere non visibili) e con dei campi che fungono da etichette descrittive, nella quale occorre inserire informazioni (dati, valori, comandi, espressioni, ecc) da parte dell'utilizzatore della relativa applicazione software. Le informazioni possono anche essere già precompilate e quindi l'utente deve scegliere (per ciascuna cella o riquadro) il valore preferito (menù a tendina, elenco selezionabile, bottone, ecc).
Per essere precisi il form è il modulo non compilato: quando è compilato allora diventa l'informazione documentata output (una prenotazione, un ordine, una valutazione, un questionario, una dichiarazione, ecc).
I form vengono formattati attraverso iCSS che permettono di dare un aspetto professionale e accattivante ai moduli rispetto all' HTML puro[3][4]. Esempio:
input[type=text],select,textarea{width:100%;padding:12px;border:1pxsolid#ccc;border-radius:4px;box-sizing:border-box;*/margin-top:6px;margin-bottom:16px;resize:vertical}
Ilsociallogin è una forma disingle sign-on che utilizza le informazioni esistenti di un servizio di social network comeFacebook,Twitter oGoogle, per accedere a unsito web di terze parti[5] invece di creare un nuovo account di accesso specifico per quel sito web. È progettato per semplificare gli accessi per gli utenti finali e per fornire informazioni demografiche sempre più affidabili agli sviluppatori web[6].
Gli studi hanno dimostrato che i moduli di registrazione del sito Web sono inefficienti in quanto molte persone forniscono dati falsi, dimenticano le informazioni di accesso al sito o semplicemente rifiutano di registrarsi in primo luogo. Uno studio condotto nel 2011 da Janrain e Blue Research ha rilevato che il 77% dei consumatori preferiva l'accesso social come mezzo diautenticazione rispetto ai metodi di registrazione online più tradizionali[7]. Ulteriori vantaggi sono:
Il rischio principale legato all'uso dei form è il furto dei propri dati mentre lo si compila[8][9]. Inoltre gli accessi sociali sono spesso implementati in modo insicuro. Gli utenti, in questo caso, devono fidarsi di ogni applicazione che ha implementato questa funzione per gestire il proprio identificatore in modo confidenziale[10].
Inoltre, facendo affidamento su un account utilizzabile su molti siti Web, l'accesso social crea un unico punto di errore, aumentando così notevolmente il danno che sarebbe causato se l'account venisse violato[11].
Con l'acronimo ingleseCAPTCHA si denota nell'ambito dell'informatica untest fatto di una o più domande e risposte per determinare se l'utente sia un umano e non uncomputer o, più precisamente, unbot.
Esempio di codice con tag appositiWAI-ARIA per l'accessibilità[12]:
<formid="send-comment"aria-label="Add a comment"><labelfor="username">Username</label><inputid="username"name="username"autocomplete="nickname"autocorrect="off"type="text"><labelfor="email">Email</label><inputid="email"name="email"autocomplete="email"autocapitalize="off"autocorrect="off"spellcheck="false"type="text"><labelfor="comment">Comment</label><textareaid="comment"name="comment"></textarea><inputvalue="Comment"type="submit"></form>
I form neiCMS si inseriscono attraverso degli appositiplugin[13][14][15] oppure dei pezzi di codice (API) generalmente inPHP oASP.NET[16][17].
Esempio di form in ASP.NET
@{if(IsPost){stringnomeazienda=Request["nomeazienda"];stringnomeazienda=Request["nomeazienda"];<p>Youentered:<br/>Nomeazienda:@nomeazienda<br/>Contatto:@contatto</p>}else{<formmethod="post"action="">CompanyName:<br/><inputtype="text"name="Nome azienda"value=""/><br/>ContactName:<br/><inputtype="text"name="Contatto"value=""/><br/><br/><inputtype="submit"value="Submit"class="Invia"/></form>}}
Esempio di form in PHP:
Nome: <input type="text" name="nome" value="<?phpecho$nome;?>">E-mail: <input type="text" name="email" value="<?phpecho$email;?>">Sito web: <input type="text" name="website" value="<?phpecho$website;?>">Commento: <textarea name="commento" rows="5" cols="40"><?phpecho$commento;?></textarea>Gender:<input type="radio" name="gender"<?phpif(isset($gender)&&$gender=="femmina")echo"checked";?>value="femmina">femmina<input type="radio" name="gender"<?phpif(isset($gender)&&$gender=="maschio")echo"checked";?>value="maschio">maschio<input type="radio" name="gender"<?phpif(isset($gender)&&$gender=="altro")echo"checked";?>value="altro">altro
Altri progetti