Puede ser hecho en PHP y en Javascript, que es lo ideal.
Como hacerlo? eso es otro boleto, pero basicamente (la parte PHP) es diseniar tu formulario y abajo del formulario dejas una parte para el error algo asi:
Código PHP:
<input type="text" name="email" value="<?php echo $email; ?>" />
<?php if( isset( $errors['email'] ) ) { ?>
<br />
<span class="field-error"><?php echo $errors['email']; ?></span>
<?php } ?>
Esto por cada campo, y luego realizar tu lógica en la misma, pagina algo asi (pseudocodigo):
Código PHP:
if( formulario_enviado() ) {
if( formulario_valido() ) {
procesar_formulario();
enviar_mail();
redireccionar_a_respuesta();
} else {
$errors = array();
foreach( error_formulario() as $field => $error ) {
$errors[$field] = $error;
}
}
}
dibujar_formulario();