Puedes probar con esto:
Código:
<?php
$valido = true;
if( isset($_POST['nombre']) and isset($_POST['email']) and isset($_POST['mensaje']) ){
if($_POST['nombre']==''){
$valido = false;
}
if (!ereg("^([a-zA-Z0-9\._]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})",$_POST['email'])){
$valido = false;
}
if($_POST['mensaje']==''){
$valido = false;
}
}else{
$valido = false;
}
if($valido){
$contenido = "Nombre: ".$_POST['nombre']."\n";
$contenido .= "Correo: ".$_POST['email']."\n";
$contenido .= "Mensaje: ".$_POST['mensaje'];
mail ( $_POST['email'] , "Contacto desde formulario" , $contenido );
header('location:pagina_que_quieras_redirigir.php');
}else{
echo "<h3>Sus datos contienen errores.</h3>";
}
?>
Pero recuerda que en tu formulario tus campos deben llamarse igual que en tu script, segundo al hacer uso de header, no puedes enviar nada al navegador, e s decir no hagas ningun echo o print, si no te saldría un error. Y lo de la validación del campo emial, me parece bien pero te recomendaria usar la libreria CPHPLib, ya que si no controlas bien el campo del email te pueden hacer un MAIL HEADER INJECTION y estarían enviado spam desde tu script.
Saludos