Vuoi aggiungere un form contatti al tuo sito, ma non sai da dove iniziare? In questo articolo ti spiego passo dopo passo come creare un form semplice e sicuro con HTML e PHP.
1. Crea il form HTML
Questo è il codice da inserire in una pagina chiamata contatti.html (o qualsiasi altra):
<form action="invia.php" method="POST">
<label for="nome">Nome:</label><br>
<input type="text" name="nome" id="nome" required><br><br>
<label for="email">Email:</label><br>
<input type="email" name="email" id="email" required><br><br>
<label for="messaggio">Messaggio:</label><br>
<textarea name="messaggio" id="messaggio" rows="5" required></textarea><br><br>
<button type="submit">Invia</button>
</form>
2. Il file PHP che riceve i dati: invia.php
Salva questo codice in un file chiamato invia.php nella stessa cartella:
<?php
// Controlla che il metodo sia POST
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Pulisci e valida i dati
$nome = htmlspecialchars(trim($_POST["nome"]));
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
$messaggio = htmlspecialchars(trim($_POST["messaggio"]));
// Controllo campi vuoti
if (empty($nome) || empty($email) || empty($messaggio)) {
echo "Tutti i campi sono obbligatori.";
exit;
}
// Controllo email valida
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Email non valida.";
exit;
}
// Componi il messaggio email
$destinatario = "Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. "; // Cambia con la tua email
$oggetto = "Nuovo messaggio dal sito";
$contenuto = "Nome: $nome\nEmail: $email\nMessaggio:\n$messaggio";
// Invia email
$inviato = mail($destinatario, $oggetto, $contenuto);
if ($inviato) {
echo "Messaggio inviato con successo!";
} else {
echo "Errore nell'invio del messaggio.";
}
} else {
echo "Accesso non autorizzato.";
}
?>
3. Sicurezza: cosa stai facendo con questi codici?
- htmlspecialchars(): protegge da attacchi XSS (iniezione HTML/JS)
- filter_var(): pulisce e valida l’email
- trim(): rimuove spazi vuoti indesiderati
4. Cosa succede quando un utente invia il form?
- Compila i campi del modulo
- Il browser invia i dati a invia.php tramite POST
- Il PHP valida, filtra e invia un’email
- L’utente riceve un messaggio di conferma (o errore)
Conclusione
Con pochi passaggi hai un form contatti funzionante, sicuro e pronto da integrare in qualsiasi sito. Puoi anche espanderlo con allegati, checkbox, selettori, captcha… lo vediamo nei prossimi articoli 😉
➡️ Copia il codice, personalizzalo e testalo su un server con PHP attivo (come XAMPP, MAMP o uno spazio hosting).
Hai bisogno del file già pronto in zip o vuoi la versione con alert animati? Scrivimi nei commenti o scrivici nella sezione “Diventa virale”!