- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema con Form per invio e-mail
-
Problema con Form per invio e-mail
Salve io ho creato una pagina in html chiamata contattami.html
Al suo interno ho messo:
<form id="form2" method="post" action="send.php" name="contattami"> <div class="container"> <div class="column1"> <blockquote> <blockquote> <p align="left"><strong>Nome e Cognome: </strong> <input type="text" name="nome" size="30" /> <br /> <br /> <strong>Indirizzo e-mail: </strong> <input type="text" name="email" size="30"> <br /> <br /> <strong>Telefono: </strong> <input type="text" name="telefono" size="30" /> </blockquote> </blockquote> </div> <div class="column2"> <strong>Testo del messaggio: </strong> <textarea rows="10" cols="30" name="messaggio"> </textarea> <br /> <div class="alignright" style="margin-right:7px; padding-bottom:10px;"> <a href="send.php" onclick="document.getElementById('form2').submit()"><input type="submit" value="Invia" /></a> <input type="reset" value="Cancella" /></div> </p> </div> <div class="clear"></div> </div> </form> ```Creata pagina send.php è messo questo nel body:
<?PHP
// Processo di recupero dei dati
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$messaggio = nl2br($_POST['messaggio']);
// Processo di controllo [Opzionale]
if ($nome == null)
{
print "Errore: è necessario compilare il campo 'Nome e cognome'";
}
else
{
if ($email == null)
{
print "Errore: è necessario compilare il campo 'Indirizzo e-mail'";
}
else
{
if ($telefono == null)
{
print "Errore: è necessario compilare il campo 'Telefono'";
}
else
{
if ($messaggio == null)
{
print "Errore: è necessario compilare il campo 'Messaggio'";
}
else
{
// Processo di configurazione dell'email
// [Destinatario, mittente, ecc]
$mail_to = "miaemail";
$mail_from = $email;
$mail_subject = "Contatto dal web da parte di $nome $email";
$mail_body = $_POST['body'];
// Intestazioni HTML
$mail_in_html = "MIME-Version: 1.0\r\n";
$mail_in_html .= "Content-type: text/html; charset=iso-8859-1\r\n";
$mail_in_html .= "From: <$mail_from>";
// Processo di invio
if (mail($mail_to, $mail_subject, $mail_body, $mail_in_html))
{
print "Email inviata con successo!";
}
else
{
print "Errore";
}
}
}
}
}
?>Mi da questo errore: "; // Processo di invio if (mail($mail_to, $mail_subject, $mail_body, $mail_in_html)) { print "Email inviata con successo!"; } else { print "Errore"; } } } } } ?> Che faccio? dove sbaglio?
-
Se lo faccio partire da xampp quando provo a inviare l'email mi dice che devo inserire il campo nome e cognome, ma il realtà io lo inserisco...
-
Ricorda, crea sempre uno script ordinato!
Io tenterei di modificarlo così:
[PHP]<?PHP
// Processo di recupero dei dati
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$messaggio = nl2br($_POST['messaggio']);
// Processo di controllo [Opzionale]
if(empty($nome))die ("Errore: è necessario compilare il campo 'Nome e cognome'");
if(empty($email))die ("Errore: è necessario compilare il campo 'Indirizzo e-mail'");
if(empty($telefono))die( "Errore: è necessario compilare il campo 'Telefono'");
if(empty($messaggio))die("Errore: è necessario compilare il campo 'Messaggio'");
// Processo di configurazione dell'email
// [Destinatario, mittente, ecc]
$mail_to = "miaemail";
$mail_from = $email;
$mail_subject = "Contatto dal web da parte di $nome $email";
$mail_body = $_POST['body'];
// Intestazioni HTML
$mail_in_html = "MIME-Version: 1.0\r\n";
$mail_in_html .= "Content-type: text/html; charset=iso-8859-1\r\n";
$mail_in_html .= "From: <$mail_from>";
// Processo di invio
if (!mail($mail_to, $mail_subject, $mail_body, $mail_in_html))die("Errore!");
echo "Email inviata con successo!";
?>[/PHP]
E comunque, ricorda che...// Processo di controllo [Opzionale]
La sicurezza non è mai troppa ed un controllo di sicurezza è il minimo che si possa fare!;);)
Ciao!;)