Pues recogerlos y propagarselos en los campos value de tus input y demás elementos de formulario ..
Por ejemplo yo uso mucho:
Al entrar a tu sección de código de validación ... Me hago una cópia del array POST (o GET según corresponda al method empleado en tu formulario).
Código PHP:
$misvaribles=$_POST;
//valido mis $_POST['algo'] variable ..
Si he de volver al formulario .. vuelvo redireccionando y propago el array $misvariable .. Esa propagación la puedo hacer en sesiones, cookies o por el URL ..
Si lo hago por el URL se debe "serializar" y "deserializar" el array (en una de las FAQ's está explicado como hacerlo) ..
Lo más "limpio" (pues no veras ninguuna variable rondando por el URL) es usar cookies o sesiones.
así al terminar tu proceso de valición .. redirecciona bien sea automáticamente (con header("location: fomulario.php") .. ) o con javascript.
Si vas a propagar por el URL el array $misvariables .. debes de aplicar las funciones de la FAQ que te menciono (serializar ..) y propagarla en el link que vas a genear para tu redireción:
Código PHP:
header("location: formulario.php?misvariables=$misvariables");
o en tu link ... o javascritp que uses al formar el link.
En tu formulario .. usas el array $misvariables para poblar tus value de los input ...
Código PHP:
$misvariables=$_GET['misvariables']; // caso de que llegasen por el URL .. $_SESSION si creastes una sesión ..etc
<input name="variable" type="text" value="<? echo $misvariable['variable']; ?>">
Al hacerme una copia de "$_POST" en el script que valido las variables .. los indices de $mivariables (array) son los mismos que los nombres de mis "name" de mis input del formulario .. así no es dificil equivocarse o andar con "conversiones" de nombres de variables ..
Un saludo,