Bueno para el primer asunto (mostrar un mensaje), tenés muchas opciones. Lo que yo suelo hacer es:
En el código que muestra el formulario, hago lo siguiente:
Código PHP:
Ver original<?php if(!isset($_REQUEST['gracias'])){?>
<!--codigo HTML del formulario -->
<?php }else(){?>
<!-- codigo HTML del mensaje -->
<?php }?>
Por supuesto que ese código está incluido en un HTML propiamente estilizado y todo lo demás.
Entonces en el código PHP que envía el formulario, tenés que incluir esta línea:
Por supuesto que "formulario.php" es el documento donde tenés el código que te mostré antes.
Te lo muestro en un ejemplo:
Acá hay un formulario:
http://nahueljose.com.ar/html-email-sender/
Pero una vez enviado el mensaje, te redirige acá:
http://nahueljose.com.ar/html-email-sender/?enviado
De esa forma tenés el formulario y el mensaje de gracias en el mismo documento y están sometidos al mismo estilo.
Otra opción es usar otro documento HTML aparte y redirigir ahí. Ejemplo:
:)
Para validar los datos antes de enviar el mail, podés hacer algo en JavaScript. Si buscás "validar formulario" en google o en el foro de JavaScript vas a encontrar muchos ejemplos!