Suponiendo que desea ejecutar esto desde un formulario, deberá configurar su etiqueta de formulario HTML de la siguiente manera:
<form action="contact.php" method="post">
A continuación, debe cambiar el nombre de contact.html a contact.php (cualquier editor de texto debería poder hacer esto fácilmente).
Finalmente, estás usando el header() de PHP función, que causará errores si tiene salida al navegador antes de que se llame. Esto incluye el uso de echo de PHP estructura Tu contact.php El archivo debería tener este aspecto (y estar en el mismo directorio que el archivo HTML que contiene el formulario):
<?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>';
}
}
?>
elseif en realidad era redundante, y else será suficiente.