Yo uso la técnica de sci-fi (volcando el array $_POST a una session) .. va muyy bien para no andar paseando por el URL los datos del formulario ..
Un detalle .. al llegar a la página del formulario y obtener el valor del array $_POST que he guardado en la session .. procedo a borrar ese array (variable) de la session .. Así si abandonan el formulario en ese punto .. ya no me quedará dando vueltas la sesion esa (variable, array).
Por lo demas .. no me complico con crear un array del array $_POST .. tan solo hago:
En el script.php q procesa el formulario ...
Código PHP:
<?php
session_start();
$_SESSION['datos_formulario']=$_POST;
?>
Y en el formulario:
Código PHP:
<?php
session_start();
if (isset($_SESSION['datos_formulario'])){
$datos_formulario=$_SESSION['datos_formulario'];
session_unregister('datos_formulario'); // borro los datos de la session
} else {
$datos_formulario=array();
}
// Y donde lo necesite:
echo "<input type=\"text\" name=\"nose\" value=\"$datos_fomulario['nose']\">";
?>
Lo mismo .. para los mensajes de error personalizados para cada campo/error del formulario .. se puede usar un array de "errores" y pasarlo por el mismo método ...
Un saludo,