PHP: Form contatti
Form contatti in PHP
Un form contatti è uno degli strumenti più usati nei siti web per ricevere messaggi dagli utenti. In PHP si possono gestire i dati inseriti, validarli e inviarli via email. È fondamentale controllare sempre gli input per motivi di sicurezza.
Introduzione
Un form contatti in PHP è composto da due parti: l’HTML per l’interfaccia utente e lo script PHP per l’elaborazione dei dati. Prima di procedere con l’invio è necessario validare i campi (ad esempio l’email) e proteggere da tentativi di injection.
Esempio: Form HTML
Il form contiene campi di input base: nome, email e messaggio. I dati vengono inviati tramite metodo POST
a uno script PHP dedicato.
Codice Esempio: form.html

<!DOCTYPE html>
<html>
<head>
<title>Form Contatti</title>
</head>
<body>
<form action="contatti.php" method="post">
Nome: <input type="text" name="nome" required><br><br>
Email: <input type="email" name="email" required><br><br>
Messaggio:<br>
<textarea name="messaggio" rows="5" cols="30" required></textarea><br><br>
<input type="submit" value="Invia">
</form>
</body>
</html>
Esempio: Script PHP di gestione
Lo script PHP riceve i dati, li filtra e simula l’invio di una email. Nell’ambiente reale la funzione mail()
può essere usata, ma spesso si preferiscono librerie esterne come PHPMailer.
Codice Esempio: contatti.php

<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$nome = htmlspecialchars($_POST["nome"]);
$email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
$messaggio = htmlspecialchars($_POST["messaggio"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Email non valida.";
exit;
}
echo "Grazie $nome, il tuo messaggio è stato ricevuto.";
// Qui si potrebbe usare mail() o PHPMailer per l’invio reale
}
?>
Struttura dei dati
Quando il form viene inviato, i dati si trovano nell’array superglobale $_POST
:

Array
(
[nome] => Mario
[email] => mario@example.com
[messaggio] => Ciao, vorrei informazioni.
)
Tabella riassuntiva
Campo | Descrizione | Validazione |
---|---|---|
Nome | Nome dell’utente che compila il form. | Obbligatorio, evitare script con htmlspecialchars() . |
Indirizzo email dell’utente. | Sanitizzazione e FILTER_VALIDATE_EMAIL . |
|
Messaggio | Contenuto del testo inviato. | Obbligatorio, filtrare con htmlspecialchars() . |
Considerazioni
Il form contatti è un elemento semplice ma deve essere progettato con cura. La validazione lato client (JavaScript) migliora l’esperienza utente, ma la protezione vera deve avvenire sempre lato server in PHP.