Supponendo che desideri eseguirlo da un modulo, dovrai impostare il tag del modulo HTML come segue:
<form action="contact.php" method="post">
Dovresti quindi rinominare contact.html
a contact.php
(qualsiasi editor di testo dovrebbe essere in grado di farlo facilmente).
Infine, stai usando header()
di PHP funzione, che causerà errori se l'output viene inviato al browser prima che venga chiamato. Ciò include l'utilizzo di echo
di PHP struttura Il tuo contact.php
dovrebbe avere questo aspetto (e trovarsi nella stessa directory del file HTML contenente il modulo):
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$message = $_POST['message'];
$from = 'From:you';
$to = '[email protected]';
$subject = 'Hello';
$human = $_POST['human'];
$body = "From: $name\n E-Mail: $email\n Number: $number\n Message:\n $message";
if ($_POST['submit']) {
if ($name != '' && $email != '')
{
if ($human == '4')
{
if (mail ($to, $subject, $body, $from))
{
header("Location: thanks.html");
}
else
{
echo '<p>Something went wrong, go back and try again!</p>';
}
}
else
{
echo '<p>You answered the anti-spam question incorrectly!</p>';
}
}
else
{
echo '<p>You need to fill in all required fields!!</p>';
}
}
?>
Nota: Ho corretto un po' il tuo layout e cambiato alcune delle condizioni che stavi usando. Il primo elseif
era effettivamente ridondante e un else
sarà sufficiente.