Context engineering
6 – Form e Interazione con l’Utente
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.
$_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.
| Metodo | Visibilità dati | Sicurezza | Uso tipico |
|---|---|---|---|
| GET | Alta (URL) | Bassa | Ricerca, filtri |
| POST | Nascosta | Più alta | Login, moduli riservati |
Un passaggio cruciale è controllare e pulire i dati ricevuti, perché l’utente può commettere errori o, peggio, inviare input malevoli.
Validazione lato client (JavaScript/HTML5): rapida, migliora l’esperienza utente, ma non sufficiente.
Validazione lato server (PHP): necessaria per la sicurezza.
Controllo che un campo obbligatorio non sia vuoto.
Verifica del formato email (utente@example.com).
Verifica che un’età sia numerica e positiva.
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.
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.
Creiamo un form che richiede username e password, verifica i dati e restituisce un messaggio di successo o errore.
Creare un form con due campi: username e password.
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.”
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.
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.
Commenti
Posta un commento