<?php
// specifica la tua email e l'oggetto del messaggio
$your_email = 'alicedegaetani@gmail.com';
$subject = 'Nuovo messaggio';
// funzione per la visualizzazione degli errori
function show_error($errtxt)
{
    // creo la query per la pagina
    $query = array('err' => $errtxt);
    $query = http_build_query($query);
    
    // reindirizzo alla pagina
    header("Location: form.php?{$query}");
    
    // interrompo lo script
    exit();
}
// se il form è stato inviato
if(isset($_POST['submit']))
{
    // recupero i dati inviati
    $name    = isset($_POST['name'])    ? trim($_POST['name'])    : '';
    $surname = isset($_POST['surname']) ? trim($_POST['surname']) : '';
    $email   = isset($_POST['email'])   ? trim($_POST['email'])   : '';
    $message = isset($_POST['message']) ? trim($_POST['message']) : '';
    
    // controlla che i campi non siano vuoti
    if($name == '')
        show_error('Non hai inserito il tuo nome.');
    if($surname == '')
        show_error('Non hai inserito il tuo cognome.');
    if(!preg_match('/^([\w\-\+\.]+)@([\w\-\+\.]+).([\w\-\+\.]+)$/', $email))
        show_error('L\'e-mail che hai fornito non è valida.');
    if($message == '')
        show_error('Non hai inserito il tuo messaggio.');
    
    // crea il messaggio da inviare
    $msgtxt = "Un nuovo messaggio ti è stato inviato da un utente.\n";
    $msgtxt = "L'utente ha fornito queste informazioni:\n";
    $msgtxt = "---------------------------------------------------\n";
    $msgtxt = "Nome: {$name}\n";
    $msgtxt = "Cognome: {$surname}\n";
    $msgtxt = "E-mail: {$email}\n";
    $msgtxt = "---------------------------------------------------\n";
    $msgtxt = "{$message}\n";
    $msgtxt = "---------------------------------------------------\n";
    $msgtxt = "L'indirizzo IP dell'utente è {$_SERVER['REMOTE_ADDR']}.";
    
    // tenta di inviare il messaggio
    if(!mail($your_email, $subject, $msgtxt))
        show_error('Impossibile inviare il messaggio. Riprova più tardi.');
    
    // visualizza il messaggio di avvenuto invio
    header('Location: form.php?sent=true');
}
// altrimenti
{
    // reindirizza al file del form
    show_error('Non hai inviato i dati. Ritenta.');
}
?>