Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/06/2004, 08:48
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Bueno .. la solución no debería ser la de usar javascript/HTML en ese contexto.

Les explico por qué NO usarlo.

Hagan la prueba. En su actual scritp .. cuando les muestre el mensaje .. recarguen la página .. El código se ejecutará nuevamente y se solicitará el envio nuevamente de las variables del formulario. Si el proceso que se ejecutó antes del mensaje fuese el de insertar esos datos en una BD .. enviar un e-mail con esos datos ..etc. El proceso se repetirá N veces como ganas de recargar la página tenga el usuario duplicando registros en tus BD, enviando e-mails repetidos .. etc.

La solución sería la de -separar- el código PHP de la presentación de mensajes de error en "peticiones" al servidor diferentes.

Quedando algo tipo:

Código PHP:
<?
// proceso de validación
// si hay error:
header ("Location: mensajes.php?error=1");
exit;

// etc validaciones NADA DE HTML aquí ..
?>
y en mensajes.php (que podría ser perfectametne este mismo script que valida/presentea el formulario .. etc pero siempre con una recarga de página y pasando com parámetro una variable que identifique que error sucedió:

Código PHP:
<?
if ($_GET['error'] ==1){
echo 
"Se produjo un error de tal tipo en tal cosa";
}

// resto de formulario .. o link hacia el formulario si quieres presentar los mensajes de error en página separada ..
?>
Si dices que "así" pierdes los valores del formulario que se pusieron .. sólo tienes que propagar el URL (junto a esa variable "error") el resto de variables que le enviastes de tu formulario para luego componer los "value" de esos campos input de formulario (o usando sesiones/cookies para propagar estas variables).

Un saludo,