Foros del Web » Programando para Internet » PHP »

Enviar mensaje de error en un formulario

Estas en el tema de Enviar mensaje de error en un formulario en el foro de PHP en Foros del Web. Hola amigos, verán tengo un pequeño problema: Tengo un formulario que funciona bien, llegan los datos desde el archivo form.php hasta el archivo enviar.php que ...
  #1 (permalink)  
Antiguo 21/03/2014, 10:06
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Enviar mensaje de error en un formulario

Hola amigos, verán tengo un pequeño problema:

Tengo un formulario que funciona bien, llegan los datos desde el archivo form.php hasta el archivo enviar.php que es el que los procesa los datos y los manda al correo electronico que al que está enlazado el formulario.

Hasta aquí bien. pero resulta que cuando algun campo no está rellenado correctamente,

sale un mensaje de error en el archivo enviar.php , diciendo que que ese campo no ha sido rellenado correctamente.

Pero yo quiero que ese mensaje de error salga en el archivo del form.php y no en el archivo de enviar.php

Y no se como hacerlo.

Alguien sabria ayudarme. Lo he intentado de mil maneras y nada.


pondre codigo:


form.php


Código PHP:
Ver original
  1. <form id="miformulario" method="post" action="enviar.php">
  2.  
  3. <input name="asunto" type="text" value="Asunto" size="43" maxlength="100" autocomplete="on"
  4.                                                    
  5.             id="asunto" class="inputstyle" title="Escriba aquí su Asunto"
  6.        
  7.                       onFocus="if(this.value == 'Asunto') {this.value = '';}"
  8.                                
  9.                        onBlur="if (this.value == '') {this.value = 'Asunto';}"/>
  10.  
  11. <input name="enviar" type="submit" class="submitEnviar" value="ENVIAR" alt="enviar" />
  12.  
  13. </form>


Y el archivo enviar.php


Código PHP:
Ver original
  1. $asunto = trim(htmlentities(($_POST['asunto'])));
  2.  
  3.     if ($asunto == 'Asunto') {
  4.  
  5.         header("Refresh: 3; URL=opc_contacto.php");
  6.  
  7.         echo 'Escriba el Asunto, gracias'. "<br/>";
  8.  
  9.         }
  10.  
  11.                 $header = 'From: ' . $mail . "\r\n";
  12.                 $header .= "Mime-Version: 1.0 \r\n";
  13.                 $header .= "Contect-Type: text/plain";
  14.  
  15.         $asunto.= "   Asunto: " . $asunto . "\r\n";
  16.  
  17.  
  18.                 $para = '[email protected]';
  19.  
  20.                 $asunto = $_POST['asunto'];
  21.  
  22. mail($para, $asunto, utf8_decode($mensaje), $header);
  23.  
  24.  
  25.             header("Refresh: 3; URL=../index.php");
  26.        
  27.                 echo '<p class="mensaje">Su mensaje a sido recibido correctamente, gracias</p>';   
  28.  
  29.             }
  30.        
  31.         }


Gracias de antemano.
  #2 (permalink)  
Antiguo 21/03/2014, 10:41
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Enviar mensaje de error en un formulario

Antes de usar las variables en el PHP que procesa los datos del formulario, debes comprobar que han sido rellenados los campos con empty() o similar, y en caso de que alguna este vacia redirigir al formulario con la funcion header().

Todo se trata de condicionales con empty(), realmente es sencillo, también estaría bien que hicieras las comprobaciones en javascript en el mismo formulario, pero eso es para comodidad del usuario para que le avise al momento, por seguridad siempre hay que hacer esas comprobaciones en el servidor.

Un saludo
  #3 (permalink)  
Antiguo 21/03/2014, 10:42
 
Fecha de Ingreso: junio-2013
Ubicación: En cualquier parte de mi casa
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 14
Respuesta: Enviar mensaje de error en un formulario

Que tipo de validacion necesitas? Has probado con las validaciones de HTML5 en los campos de los formularios? como por ejemplo el required ?
  #4 (permalink)  
Antiguo 21/03/2014, 10:48
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Respuesta: Enviar mensaje de error en un formulario

Gracias por responder Helios, te comento:

La parte de javascript, ya la tengo hecha y funciona bien, menos mal jejee.

Lo que necesito que no se como hacer es un ejemplo pequeñico de que es lo que tendria que poner en el input del asunto del formulario para que si no lo rellena correctamente le salga justo debajo del campo input un mensaje de que no lo ha rellenado correctamente.

pero que no me lo diga este mensaje de error en el archivo de enviar.php.

Espero sea ahora mas claro.

por que aunque me digas que use empty no se como enfocarlo
  #5 (permalink)  
Antiguo 21/03/2014, 11:01
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Enviar mensaje de error en un formulario

Para eso necesitas usar sesiones, un ejemplo:

Script que procesa:
Código PHP:
if(empty($_POST['campoX'])){
    
$_SESSION['error'] = "El campoX esta vacio o contiene informacion no valida";
    
header("location: paginaFormulario.php");

Y despues en el formulario, debajo de los campos que es donde quieres que aparezca el mensaje:
Código PHP:
<input ................... /><br/><span><?php echo $_SESSION['error']; ?></span>
El código no sé si esta correcto, lo he escrito directamente aquí, algún error tendrá, no lo he escrito para que lo copies y lo peges, únicamente lo he escrito para darte la idea de como se hace, ahora tu debes implementarlo de una manera más profesional, sin usar un <br/> por ejemplo, y comprobando antes de mostrar la variable que la variable $_SESSION['error'] existe, pero espero que hayas entendido el método.

Un saludo

Etiquetas: formulario, html, mensaje
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 21:52.