Ho scritto questo form e questo è il codice.
Codice PHP:
<?php
// funziona che controlla il formato della mail inserita dall'utente
function is_email($email)
{
$pattern = '/[\w\-]+(\.[\w\-]+)*@[\w\-]+(\.[\w\-]+)+/';
return preg_match($pattern, $email);
}
if (isset($_POST['invia']))
{
// prima di proseguire si assicura che il form sia stato compilato da un umano
if ($_POST['umano'] == '')
{
// pulisce i valori inseriti dall'utente
$nome = trim($_POST['nome']);
$email = trim($_POST['email']);
$messaggio = trim($_POST['messaggio']);
// controllo dei dati inseriti dall'utente
$errore = '';
if (strlen($nome) < 2)
{
$errore = '
Nome troppo corto. Usa almeno due caratteri</p>';
}
if (!is_email($email))
{
$errore .= '
Email non valida.</p>';
}
if (strlen($messaggio) < 10)
{
$errore .= '
Messaggio non valido. Usa almeno 10 caratteri.</p>';
}
if ($errore == '')
{
include('phpmailer/class.phpmailer.php');
$a_me = new PHPMailer();
$a_me->From = $email;
$a_me->FromName = $nome;
$a_me->AddAddress('qui ho messo il mio indirizzo email');
$a_me->AddReplyTo($email);
$a_me->Subject = $_POST['richiesta'];
$a_me->Body = $messaggio;
if ($a_me->Send())
{
$id = 'inviato';
}
else
{
$id = 'non_inviato';
$errore = "
Errore durante l'invio del messaggio.</p>";
}
}
else
{
$id = 'non_inviato';
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Egidio Web Designer | Contattami</title>
<link rel="stylesheet" type="text/css" media="all" href="css/stile.css" />
<style type="text/css">
table
{
font-family: 'AllerRegular';
color: #4c4c4c;
font-size: 14px;
line-height: 22px;
border-collapse:separate;
border-spacing:5px 10px;
}
textarea, input
{
font-family: 'AllerLightRegular';
color: #000;
font-size: 13px;
line-height: 21px;
}
td
{
vertical-align: top;
}
<?php
if (isset($_POST['invia']))
{
echo '
#inviato
{
padding: 20px;
border: 3px solid #00cc00;
}
#non_inviato
{
padding: 20px;
border: 3px solid #cc0000;
}
#inviato p
{
color: #00cc00;
}
#non_inviato p
{
color: #cc0000;
}
';
}
?>
</style>
</head>
<body>
<?php
include('intestazione.php');
?>
<div id="contenitore">
<div id="corpo">
<div id="<?php echo $id; ?>">
<?php
if (isset($_POST['invia']))
{
if ($errore != '')
{
echo $errore;
}
else
{
echo '
Messaggio inviato correttamente!</p>
Grazie per avermi contattato.</p>
Ti risponderò appena possibile.</p>';
}
}
?>
</div>
<h1
<?php
if (isset($_POST['invia']))
{
echo 'style="margin-top: 50px;"';
}
?>
>Contattami</h1>
<form action="contattami.php" method="post">
<table>
<tr>
<td>
Nome</p></td>
<td>
<input type="text" name="nome" />
</td>
</tr>
<tr>
<td>
Email</p></td>
<td>
<input type="text" name="email" />
</td>
</tr>
<tr>
<td>
Richiesta</p></td>
<td>
<select name="richiesta">
<option value="sito">Creazione sito web</option>
<option value="aiuto">Richiesta di aiuto generale</option>
<option value="commento">Commento all'autore</option>
<option value="altro">Altro</option>
</select>
</td>
</tr>
<tr>
<td>
Messaggio</p></td>
<td>
<textarea rows="5" cols="50" name="messaggio"></textarea>
</td>
</tr>
<tr>
<td></td>
<td style="text-align: center;">
<input type="reset" name="cancella" value="Cancella" />
<input type="submit" name="invia" value="Invia" />
<input type="input" name="umano" style="opacity: 0;" />
</td>
</tr>
</table>
</form>
</div>
<div id="barra_laterale">
<?php
include('pubblicita.php');
?>
</div>
<?php
include('pie_di_pagina.php');
?>
</div>
</body>
</html>
Compilando tutti i campi, l'email non mi viene inviata, eppure non visualizzo nessun messaggio d'errore.
Come è possibile?