Zakładając, że chcesz uruchomić to z formularza, musisz ustawić tag formularza HTML w następujący sposób:
<form action="contact.php" method="post">
Następnie należy zmienić nazwę contact.html do contact.php (każdy edytor tekstu powinien być w stanie to zrobić z łatwością).
Wreszcie używasz header() PHP funkcja, która spowoduje błędy, jeśli przed wywołaniem otrzymasz dane wyjściowe do przeglądarki. Obejmuje to użycie echo PHP struktura. Twój contact.php plik powinien wyglądać tak (i znajdować się w tym samym katalogu, co plik HTML zawierający formularz):
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$message = $_POST['message'];
$from = 'From:you';
$to = 'example@sqldat.com';
$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>';
}
}
?>
Uwaga: Poprawiłem trochę twój układ i zmieniłem niektóre warunki, których używałeś. Pierwszy elseif był faktycznie nadmiarowy, a else wystarczy.