Un form (o modulo) è un elemento HTML che permette all'utente di inserire dati (testo, email, password, selezioni, ecc.) e inviarli al server, dove PHP li riceve ed elabora. Dal punto di vista di PHP, il form è il punto d'ingresso dei dati nel programma.
1️⃣ Creare un Form HTML di base
Un form è definito in HTML con il tag <form>.
Al suo interno ci sono campi di input e un pulsante per l'invio.
<!-- Inizio del file HTML --><formaction="processa.php"method="post"><label for="nome">Nome:</label><inputtype="text"id="nome"name="nome"><label for="email">Email:</label><inputtype="email"id="email"name="email"><input type="submit" value="Invia"></form><!-- Fine del file HTML -->
- <form>: Il contenitore principale di tutti gli elementi di input.
- action: Specifica dove (cioè in quale file PHP) i dati del form verranno inviati.
- method: Definisce come i dati vengono inviati al server. I metodi più usati sono GET e POST.
- <input>: L'elemento che riceve l'input dell'utente. Ogni input deve avere un name, usato da PHP per identificare il valore ricevuto.
2️⃣ Differenza tra GET e POST
| Metodo | Caratteristiche | Quando usarlo |
|---|---|---|
| GET | I dati vengono aggiunti all’URL (visibili nell’indirizzo) | Per ricerche o link condivisibili |
| POST | I dati vengono inviati nel corpo della richiesta (non visibili) | Per dati sensibili o moduli complessi (login, contatti, ecc.) |
3️⃣ L'invio dei dati al server
Quando l’utente clicca su “Invia”, il browser manda i dati al file indicato in action (in questo caso processa.php)
utilizzando il metodo specificato (POST o GET).
4️⃣ PHP riceve e gestisce i dati
Nel file processa.php, puoi accedere ai dati inviati tramite le variabili superglobali $_POST o $_GET:
<?php// 1. Recupero dei dati dall'array superglobale $_POST$nome =htmlspecialchars($_POST['nome'] ?? '');$email =htmlspecialchars($_POST['email'] ?? '');// 2. Stampa dell'output a videoecho "Ciao $nome, la tua email è $email.";?>
- $_POST è un array associativo che contiene i dati inviati con
method="post". - Se avessi usato
method="get", i dati sarebbero accessibili con$_GET. htmlspecialchars()converte caratteri speciali in entità HTML, prevenendo problemi di sicurezza (XSS).
💡 Invio del form allo stesso file
A volte è utile gestire l'invio e la visualizzazione del form nello stesso file PHP. Puoi farlo impostando l'attributo action così:
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
In questo modo, il form invia i dati allo stesso script, che può mostrare errori, ricaricare i valori o confermare l'invio.