Bueno .. para evitar usar javascritp para validar datos y que "no se pierdan" los datos ante un error ..
Lo ideal es pasarle los estados de las variables anteriores al scritp (en ese caso formulario) q los emite ...
Ejemplo:
En el formulario ...
Código PHP:
<input type="text" name="cel[1]" value="<? echo $cel[1]; ?>" size="50" maxlength="50">
Usamos el campo value= .. para ajustar su valor inicial .. En el primer estado (inicio del formulario sin errores) no habra valor en ese indice de ese array (datos) ...
En mensaje.php
Código PHP:
header("Location: mensaje.html".$param."&".$cel);
Le pasamos el array $cel .. q contiene los valores del formulario ...
Esto es el funcionamiento "báscico" .. Por supuesto le hace falta filtrados (stripslahses() ... ) y algo de lógica para determinar si se envia el array $cel (con los datos del formulario) en caso de error o no se envia en caso de no existir error ...
Un saludo,