Bueno .. yo uso sesiones para todo eso (en la validación "servidor" vía PHP)
formulario.php Código PHP:
<?
session_start();
// Mostrar errores si los hay (mensajes)
if (isset($_SESSION['error'])){
echo $_SESSION['error'];
}
// Recoger variable sesión con las variables que se enviaron..
if (isset($_SESSION['formulario'])){
$form=$_SESSION['formulario'];
}
<form action="procesar.php" action="post">
<input type="text" name="nose" value="<? echo $form['nose'] ?>">
etc formulario .. campos y botón submit ..
</form>
?>
Se usan las opciones "value" de los input para darle un valor predefinido si hay error al validar.
procesar.php Código PHP:
<?
session_start();
// Registro el array POST entero en una variable de sesión
$_SESSION['formulario']=$_POST;
// Valido mis variables del formulario ..
// proceso si corresponde ..
// else
// si hay error .. redirecciono al formulario .. En la sesión ya tengo mis variables que envié. Ademas . uso la misma sesión para propagar el código de error:
$_SESSION['error']="blabla";
header ("Location: formulario.php");
exit;
?>
Y .. eso es todo .. Lo mismo se podría hacer por cookies y propagando todas las variables por el URL .. pero en una sesión como verán se hace todo comodamente.
Esto no quita que opcionalmente se validen los datos vía cliente en javascript. Pero, nunca hay que olvidarse de validar en última instancia en el Servidor.
Un saludo,