6 – Form e Interazione con l’Utente
Introduzione
Uno degli aspetti fondamentali nello sviluppo web con PHP è la gestione dei form HTML, che consentono l’interazione diretta con l’utente. Un form può raccogliere dati (testo, numeri, password, scelte multiple, file, ecc.) e inviarli al server, dove PHP si occupa di elaborarli, salvarli o restituire risposte personalizzate.
La comunicazione avviene principalmente tramite i metodi HTTP GET e POST, che determinano come i dati vengono trasmessi.
Recupero dati con $_GET e $_POST
-
$_GET
-
I dati vengono passati tramite la URL.
-
È utile per operazioni semplici, come filtri, ricerche, navigazione con parametri.
-
Esempio:
pagina.php?nome=Mario&età=25 -
Vantaggio: i dati sono visibili e condivisibili tramite link.
-
Svantaggio: non adatto a dati sensibili (password, informazioni private).
-
-
$_POST
-
I dati vengono inviati nel corpo della richiesta HTTP.
-
Più sicuro e usato per login, registrazioni, inserimento dati complessi.
-
I parametri non compaiono nella barra degli indirizzi.
-
Confronto sintetico
| Metodo | Visibilità dati | Sicurezza | Uso tipico |
|---|---|---|---|
| GET | Alta (URL) | Bassa | Ricerca, filtri |
| POST | Nascosta | Più alta | Login, moduli riservati |
Validazione e sanificazione input
Un passaggio cruciale è controllare e pulire i dati ricevuti, perché l’utente può commettere errori o, peggio, inviare input malevoli.
Tipi di validazione
-
Validazione lato client (JavaScript/HTML5): rapida, migliora l’esperienza utente, ma non sufficiente.
-
Validazione lato server (PHP): necessaria per la sicurezza.
Esempi di validazione
-
Controllo che un campo obbligatorio non sia vuoto.
-
Verifica del formato email (
utente@example.com). -
Verifica che un’età sia numerica e positiva.
Sanificazione
Serve a rendere sicuri i dati prima di salvarli o visualizzarli.
-
htmlspecialchars()→ trasforma caratteri speciali in entità HTML, prevenendo attacchi XSS. -
filter_var($email, FILTER_VALIDATE_EMAIL)→ controlla se una stringa è una email valida. -
intval(),floatval()→ conversione sicura in numeri.
Gestione degli errori nei form
Per migliorare l’esperienza utente, è fondamentale fornire feedback chiari.
-
Se un campo è vuoto → messaggio: “Inserisci il tuo nome”.
-
Se la password non rispetta i criteri → messaggio: “La password deve avere almeno 8 caratteri”.
-
Possibilità di riproporre il form precompilato con i dati già inseriti per non farli riscrivere.
Esercizio: form di login simulato
Descrizione
Creiamo un form che richiede username e password, verifica i dati e restituisce un messaggio di successo o errore.
Passaggi logici
-
Creare un form con due campi:
usernameepassword. -
Alla pressione di Invia, i dati arrivano a PHP tramite POST.
-
PHP controlla:
-
Se i campi non sono vuoti.
-
Se l’username corrisponde a uno registrato (es.
admin). -
Se la password è corretta (es.
12345).
-
-
Restituisce il risultato:
-
“Login riuscito, benvenuto admin!”
-
“Errore: credenziali non valide.”
-
Estensione dell’esercizio
-
Inserire controlli di sicurezza, come la limitazione dei tentativi.
-
Usare hashing della password (
password_hash,password_verify). -
Implementare la gestione delle sessioni per mantenere l’utente loggato.
Conclusione
La gestione dei form in PHP è un pilastro dello sviluppo web dinamico. Padroneggiare GET, POST, validazione, sanificazione e feedback permette di creare applicazioni sicure e intuitive. L’esercizio del form di login rappresenta una prima applicazione concreta, propedeutica allo sviluppo di aree riservate, registrazioni utenti e sistemi più complessi.

Nessun commento:
Posta un commento