Porque la única condición indicada para redirigir a otra página es el envío del mail, no hay una condición para indicar cuando se ha de enviar el mail (es decir, no se revisa si ha recibido datos del formulario).
Además sería conveniente filtrar los datos enviados en el formulario para evitar problemas de seguridad.
Hace tiempo que no toco php, pero un ejemplo podría ser algo parecido a lo siguiente:
Código PHP:
Ver original<?php
// comprobar que se ha enviado el formulario
if( isset($_POST['submit']) && isset($_POST['message']) && isset($_POST['email']) ){
// htmlentities para filtrar el contenido recibido del formulario
// revisar que la dirección de e-mail recibida mediante el formulario tenga un formato correcto
if (preg_match('/^[^@\s<&>]+@([-a-z0-9]+\.)+[a-z]{2,}$/i', $_POST['email'])) {
$email = $_POST['email'];
}
// htmlentities para filtrar el contenido recibido del formulario
$thank="bio.php";
$message = "
nombre:".$nombre."
email:".$email."
message:".$message."";
if (mail($mail,"consulta",$message)){ }
}
include ("head.html");
include ("menu.html");
?>