Foros del Web » Programando para Internet » PHP »

Mostrar mensajes de error en formulario

Estas en el tema de Mostrar mensajes de error en formulario en el foro de PHP en Foros del Web. Un saludo, compañeros. El problema que tengo es el siguiente: Tengo mi index.php el cual uso como controlador. Lo primero que hace mi index es ...
  #1 (permalink)  
Antiguo 22/06/2015, 03:07
 
Fecha de Ingreso: agosto-2014
Mensajes: 30
Antigüedad: 9 años, 8 meses
Puntos: 0
Mostrar mensajes de error en formulario

Un saludo, compañeros.

El problema que tengo es el siguiente:

Tengo mi index.php el cual uso como controlador. Lo primero que hace mi index es preguntar si existe la variable $_POST y en el caso de ser la respuesta un no, me manda a form.php donde tengo mi formulario. En principio eso está bien. Luego relleno mi formulario y le doy a enviar; ahora que sí existe $_POST, voy recogiendo todo lo enviado desde el formulario y validándolo apropiadamente. En mi index.php... tengo creado un array $errores, en el que voy recogiendo los posibles errores de la validación... y en el caso de haber alguno, te envío de vuelta al formulario y en el te muestro los posibles errores. En este punto es donde estoy atorado, porque no conozco cómo form.php puede conocer que el array $errores[] existe. No sé si me estoy explicando, yo supongo que dentro de mi formulario debería tener algo como: if(isset($errores[1])) echo $errores[1]; pero claro... eso me podría valer si el array de errores lo hubiera creado en form.php pero es que está en el index... de ahí todas mis dudas. Por cierto, esto es algo que tengo que hacer sin usar el tema de las sesiones. Gracias de antemano a todos.

P.D: Ojalá me haya sabido explicar.
  #2 (permalink)  
Antiguo 22/06/2015, 03:29
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: Mostrar mensajes de error en formulario

Hola,
No se si he entendido bien pero si chequeas la existencia del $_POST en index.php debes continuar en el index y renunciar al form.php ( o hecerle un include en el index cuando se cumple la condicion)

O si el formulario envia los datos a form.php haces el cequeo de los errores $_POST en el form.php
  #3 (permalink)  
Antiguo 22/06/2015, 03:45
 
Fecha de Ingreso: agosto-2014
Mensajes: 30
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Mostrar mensajes de error en formulario

No, no me he explicado. form.php contiene el formulario y cuando le das a enviar, index.php el cual hace de controlador, recoge los datos enviados. La cuestión es que dentro de index.php, donde hago toda la validación tengo un array que va recogiendo los errores. Pero claro, cuando hay algún error, te mando de vuelta al formulario y junto al input donde cometiste el error te pongo el mensaje de error. Claro, ese mensaje de error, solo debería salir, luego de que tú hayas cometido el error, es decir, cuando el error se ha recogido en el array $errores que tengo en el index.php. Ahí está mi problema, que no sé cómo puedo hacer para que form sepa que por ejemplo $errores[1] existe... porque el array no está en form.php sino index.php. Quizás no haya manera y simplemente mi visión del asunto sea errónea. Estaré atento por si alguien más trata de ayudarme.
  #4 (permalink)  
Antiguo 22/06/2015, 14:57
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: Mostrar mensajes de error en formulario

Seguro que se puede hacer de varias maneras pero segun entiendo yo tu logica, deberia funcionarte esto:

index.php:
Código PHP:
Ver original
  1. <!-- este seria el index.php -->
  2. <html>
  3. <head>
  4. </head>
  5. <body>
  6. <?php
  7. $errores = array();
  8. if(isset($_POST["prueba"])){
  9.     //aqui he puesto yo uma condicion ... tu pondras lo que quieras
  10.     if($_POST["prueba"] !== "una prueba"){
  11.         //en caso de errores puedes hacer una bucle aqui con los errores $errores
  12.         //entonces envias de nuevo el formulario
  13.         //y los errores a coregir.
  14.         include_once("form.php");
  15.         echo "ERROR!!!<br>Aqui aviso errores";
  16.     }else{
  17.         //aqui el caso en que el formulario ha sido correcto
  18.         echo ("El formulario ha sido recibido con exito");
  19.     }
  20. }else{
  21.     include_once("form.php");
  22.     echo "Este es el primer form solo considera correcto si se escribe: <b>una prueba</b>";
  23. }
  24. ?>
  25. </body>
  26. </html>

form.php:
Código PHP:
Ver original
  1. <!-- este seria el form.php -->
  2. <form method="post" action="index.php">
  3.     <input type="text" name="prueba">
  4.     <button type="submit" >Submit</button>
  5. </form>

Aunque yo haria el chequeo antes de enviar directamente en el cliente con javascript
Espero que te sirva este ejemplo.

Etiquetas: formulario, mensajes, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:41.