Creare un modulo di contatto in php

Vediamo come creare un form di contatto grazie al liguaggio html e il php. Il form potete crearlo a vostro piacimento con i vari campi, giusto a titolo di esempio potete creare un form di contatto molto semplice con solo 3 campi (nome, email e messaggio).

<form method=’post’ action=”Contattati.php”>

<label name=”nome”>Nome: </label>    

<input type=”text” name=”nome” required=”required”>              <br>

<label name=”E-mail”>E-mail</label>  

<input type=”email” name=”email”>                    <br>    

 <b>Messaggio<b><br>                                                    

<textarea name=”messaggio” rows=’8′ cols=’30′ required=”required”></textarea>              

 <div align=”center”>      

  <input type=’submit’ value=’Contattaci’>    

 <input type=”reset” value=”reset”>                                                                                                        

</div>

</form>

Ecco l’immagine del contact form che verrà generata

Sono molto importanti le variabili del form <input type=”text” name=”oggetto”>, dove name rappresenta il nome della variabile che verrà poi inviata alla pagina mail.php, inoltre è importante definire il metodo e l’azione del form, method=”post” action=”mail.php”.


In Method è possibile scegliere tra due metodi: GET e POST.

Mentre con il metodo GET i vati vengono inviati tramite le url come da questo esempio: contatti.php?nome=antonio&citta=Paola, con il metodo POST le informazioni vengono inviate come parte dell’intestazione della pagina richiesta, in questo caso mail.php, facendo in modo che non vengano resi visibili i parametri agli utenti. Per questo in questo contact form è stato utilizzato il metodo post.

Adesso bisogna inserire il codice php in una nuova pagina che possiamo chiamare ad es. “contatti.php“.

Ecco il codice già pronto da inserire nella pagina contatti.php

<?php

$nome = htmlspecialchars(trim ($_POST[‘nome’]));

$email = htmlspecialchars(trim ($_POST[‘email’]));
$messaggio = htmlspecialchars(trim ($_POST[‘messaggio’]));

$destinatario = “tuamail@qualcosa.it”;
$oggetto = “Messaggio da $nome”;
$header = “”;
$message = “Messaggio inviato da $email              $messaggio”;

$sendmail = mail($destinatario, $oggetto, $message, $header);
header(“Refresh: 0; URL= grazie.php”);

?>

La funzione htmlspecialchars() converte certi caratteri in entità html, in questo modo il form sarà più protetto dai dati inseriti dagli utenti. Maggiori info li trovate qui.

La funzione trim invece elimina gli spazi all’inizio e alla fine della stringa.

Vediamo come interpretare il codice php:

$nome = htmlspecialchars(trim ($_POST[‘nome’])); // nella variante nome viene inserito il nome dell’utente che ha compilato il form tramite il metodo “post” (ecco la sua definizione), inoltre grazie alla funzione trim non saranno presenti spazi ne all’inizio ne alla fine del nome, mentre la funzione htmlspecialchars converte alcuni caratteri in html.

A questo punto dato che è stato creato il form e il codice php bisogna dare un riscontro agli utenti dell’avvenuto invio dell’email. Per far questo bisogna creare una nuova pagina, ad esempio emailinviata.php inserendo all’interno il seguente codice:

<?php

echo “Grazie per averci contattato!<br><br> Sarai reindirizzato fra 5 secondi.”;
header(“Refresh: 5; URL= index.html”);

?>

In questo modo “echo” stampa un messaggio e il comando “header”  porta l’utente nella home page dopo 5 secondi.