Vamos a ver, iremos por partes. Para ver si están vacíos tendrías que utilizar un código parecido a este:
Código PHP:
<?
if (empty($_POST["un_campo"])){
$error = "si";
echo "Por favor rellene este campo";
echo '<input type="text" name="nombre_del_campo">';
}else{
echo '<input type="text" name="nombre_del_campo" value="' .$_POST["un_campo"].'">';
}
?>
Una vez hecho esto, si $error está vacío, quiere decir que no ha habido ningún error, asi que hacemos la conexión a la base de datos o utilizamos la función mail() o lo que sea. Para ello utilizaríamos otro if;
Código PHP:
<?
if (empty($error)){
//Aqui hago la funcion mail() o lo que sea
}else{
echo "Por favor, rellene todos los campos";
}
?>
Un poco sencillote, pero a lo mejor te funciona.
Un saludo