Formulario con PHP

¿Cómo puedo hacer para que al enviar un formulario que proceso con PHP, si no se cumple alguna condición que yo he programado anteriormente (por ejemplo: un campo vacío), el script PHP mandé al navegador a una página de error informando de los errores producidos en el formulario, pero que está página no este dentro del archivo PHP, ya que es una página con un diseño específico?. Este es el procedimiento: 1- Rellenar el formulario y enviarlo(form.html). 2- Procesar los datos del formulario (formail.php). 2- Sí existe algún campo vacío o erróneo, mostrar la página de error (error.html).
Para mostrar la página de éxito del formulario, ya lo tengo solucionado con HEADER ("Location": éxito.html); con esta página no hay problema, ya que no le tengo que pasar ningún dato.

5 respuestas

Respuesta
1
Entiendo que si ocurren algún error quieres pasar todos los datos del formulario a la página error.html.
Crea en formail.php un formulario:
<form name="form1" action="error.html" method="post">
A continuacion crea tantos campos hidden como datos tenga tu formulario:
<input type="hidden" name="campo1" value="<? echo $campo1;?>">
...
Si al comprobar que los datos del formulario no son correctos haz algo como esto:
if ($error)
{?>
<script language="javascript">
document.form1.submit();
</script>
<?
}
De esta forma iras a la página de error mandándola todos los datos que precises
Respuesta
1
Hi,
Mira, lo que quieres hacer se puede hacer de la siguiente forma:
En el script PHP, cuando encontrás que falta rellenar el campo y tienes que mostrar error.html utilizas funciones de PHP para imprimir un código HTML. El código te deriva a la página ingresada.
<META HTTP-EQUIV=Refresh
CONTENT="0; URL=/tupagina.html"
Dentro de CONTENT pones la cantidad de segundos que va a tardar en refrescar y la página a donde ir.
Con esto creo que solucionas tu problema. Cualquier otra consulta que tengas no dudes en preguntarme.
Nahuelon..
Con esto me dirijo a la página, pero ¿cómo le paso a esa página las variables para que en dicha página aparezca escrito "Falta rellenar el campo NOMBRE?
Hi de nuevo,
¿Las datos se lo podes mandar a través de HTML de la forma?.
Esto es, en el CONTENT después de la página le pones "?" y los nombres de las variable con sus datos.
Ejemplo:
<META HTTP-EQUIV=Refresh
CONTENT="0; URL=/tupagina.html?nombre=no&apellido=perez&tel=no">
Respuesta
1
Después de enviar los datos de tu formulario form.html, con el action apuntando a formail.php, el archivo que procesa los datos del formulario podría ser de esta manera:
<?
//aqui se ve si exite algún campo vacio
for ($HTTP_POST_VARS, as $indice => $valor){
if(!$valor){header('location:pagina_de_error.php')}
}
//Aquí el proceso que quieras seguir con los datos del formulario y después enviar a la página de éxito
header('location:pagina_de_extio.html');
}
?>
Epero haberte ayudado
Respuesta
1
PAra el formulario de Error, pasa exactamente lo mismo, ya que si detectas un error en el formulario, con header(); lo rediriges a la página de error.
¿Pero como le paso a la página de error las variables para que por ejemplo indique: "Falta rellenar el campo nombre".?
Muy fácilmente, tan solo se las indicas como si de parámetros GET fueran
Ej:
Header("Location:error.php?motivo=Falta+rellenar+el+campo+nombre");
Pero que instrucción tengo que poner en la página de error, para que salga escrito: "Falta rellenar el campo (variable)", yo he probado con --echo(Nombre_variable)-- pero no me funciona.
Los datos se ven en la barra de dirección (Falta+rellenar+) pero no se como indicarle que los escriba en pa página.
ES llamaras a tu página de error con el comando :
Header("Location: error.php?e=Falta indicar un campo");
Dentro de error.php haces lo siguiente:
$error = $HTTP_GET_VARS["e"];
echo $error;
Suerte
Respuesta
1
Para hacer lo que pides, puedes utilizar lo mismo que para cuando el formulario esta correcto, pero pasando los parámetros que quieras por la URL.
Por ejemplo, pasas la variable $mensaje con el texto del error que quieras que le salga al usuario de esta forma:
header("Location: error.php?mensaje=" . urlencode("AQUI VA EL TEXTO DEL ERROR");
De esta forma, en la página error.php solo tiene que imprimir la variable $mensaje.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas