Cos'è un web form? Definizione, elementi e usi comuni Un **web form** (HTML ``) è un componente interattivo di pagina che raccoglie l'input dell'utente e lo invia a un server per l'elaborazione. È il meccanismo primario per il **flusso dati utente → server** sul web. Anatomia di base <form action="/submit" method="POST"> <label for="email">Email</label> <input type="email" id="email" name="email" required> <button type="submit">Iscriviti</button> </form> action: URL dell'endpoint del server. method: `GET` (query string) o `POST` (corpo). Controlli: ``, ``, ``, ``, ``, ``. Convalida: attributi HTML5 (`required`, `pattern`, `min`/`max`, `type`) + JavaScript + lato server. Tipi di controllo comuni TipoCaso d'uso `text` / `email` / `tel` / `url`Stringhe su una riga `password`Inserimento mascherato `number` / `date` / `range`Dati strutturati `checkbox`Booleano / multi-selezione `radio`Singola scelta (raggruppato per `name`) `select` + ``Elenco a discesa `textarea`Testo su più righe `file`Upload (multipart/form-data) `hidden`Token CSRF, ID sessione `submit` / `button`Attiva invio Top 5 casi d'uso Registrazione / Login utente: Credenziali → server di autenticazione → cookie di sessione / JWT. Contatto / Acquisizione lead: Nome, email, messaggio → CRM / notifica email. Checkout e-commerce: Spedizione, fatturazione, token di pagamento (Stripe Elements) → creazione ordine. Ricerca / Filtro: form `GET` → parametri di query → pagina risultati. Sondaggi / Feedback: Scale Likert, NPS, testo aperto → database analitico. Miglioramenti moderni Progressive Enhancement: Funziona senza JS; JS aggiunge UX (convalida live, auto-salvataggio, wizard multi-passo). Accessibilità (a11y): Etichette, `aria-describedby`, ordine focus, annunci di errore. Sicurezza: Token CSRF, cookie `SameSite`, limitazione velocità, campi honeypot, sanificazione lato server. Upload file: Upload diretto su S3 (POST presignato), chunked/resumable (Uppy, Tus). I form sono il **contratto tra l'intento dell'utente e l'azione del backend**. Progettali con attenzione. Come Usare YouTube sul Web Mobile (Senza App) Come abilitare o disabilitare Safe Chat su Roblox