Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con validación de formulario

Estas en el tema de Problema con validación de formulario en el foro de PHP en Foros del Web. Buenas tardes. Tengo un problema a la hora de validar los campos de un formulario y necesitaria ayuda con esto. Les muestro el formulario: Código ...
  #1 (permalink)  
Antiguo 09/10/2014, 14:49
 
Fecha de Ingreso: noviembre-2013
Mensajes: 18
Antigüedad: 11 años
Puntos: 0
Problema con validación de formulario

Buenas tardes. Tengo un problema a la hora de validar los campos de un formulario y necesitaria ayuda con esto.

Les muestro el formulario:
Código HTML:
<form method="post" class="signin">
                	<fieldset class="textbox">
            			<label class="username">
                			<span>
                            	<strong>
                                	Nombre y Apellido
                                </strong>
                            </span>
                			<input id="username" name="username" value="" type="text" autocomplete="on" placeholder="Escribe aquí...">
                		</label>
                		<label class="mail">
                			<span>
                            	<strong>
                                	Su Email
                                </strong>
                            </span>
                			<input id="mail" name="mail" value="" type="text" autocomplete="on" placeholder="Escribe aquí...">
                            </label>
                			<label class="reason">
                				<span>
                                	<strong>
                                    	Motivo
                                    </strong>
                                </span>
                				<input id="subject" name="subject" value="" type="text" autocomplete="on" placeholder="Escribe aquí...">
                			</label>
                			<label class="comment">
                				<span>
                                	<strong>
                                    	Consultas
                                    </strong>
                                </span>
                				<textarea name="comments" cols="25" rows="10" id="comments" style="resize:none;" placeholder="Escriba aquí* su consulta..." type="text"></textarea>
                			</label>
                			<input class="submit button" type="submit" name="send" value="Enviar"></button>
                            
                		</fieldset>
          			</form> 
y acá esta la validación PHP:
Código PHP:
                                  if(isset($_POST['send']))
                                  {
                                    if(!isset(
$_POST['username']) || !isset($_POST['mail']) || !isset($_POST['subject']) || !isset($_POST['comments']))
                                    {
                                     echo 
"<script> alert('No ha completado todo los datos') </script>;";
                                    }
                                    else
                                    {
                                     
$mensaje "Hola,\n\n\n ".$_POST['username']." se ha contactado contigo a través de www.XxXxXxXx.com.ar.\n\n A continuación el detalle de la consulta:\n\nEmail: ".$_POST['mail']."\n\n Motivo de la consulta: ".$_POST['subject']."\n\n La consulta: ".$_POST['comments'];
                                     if(
mail("[email protected]","Se han contactado contigo a través de: XxXxXxXx.com.ar"$mensaje))
                                     {
                                       echo 
"<script> alert('Se ha enviado con éxito') </script>;";
                                     }
                                     else
                                     {
                                      echo 
"<script> alert('Fallo del envío. Compruebe que estén todos los datos y vuelva a intentarlo') </script>;";
                                     }
                                    }
                                  }; 


El problema acá es que, cuando hago click en el botón "Enviar" sin completar los campos, entra en los diferentes IF hasta que llega al "echo "<script> alert('Se ha enviado con éxito') </script>", lo imprime y manda el mail sin haber completado los campos..... Como podría solucionarlo para que no se pueda enviar hasta que los campos esten validados realmente?

Muchas gracias.
  #2 (permalink)  
Antiguo 10/10/2014, 08:26
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 2 meses
Puntos: 578
Respuesta: Problema con validación de formulario

En este caso la función debería ser empty(). Isset solo comprueba que el valor no sea NULL.
  #3 (permalink)  
Antiguo 11/10/2014, 18:43
 
Fecha de Ingreso: noviembre-2013
Mensajes: 18
Antigüedad: 11 años
Puntos: 0
Respuesta: Problema con validación de formulario

Cita:
Iniciado por PHPeros Ver Mensaje
En este caso la función debería ser [URL="http://php.net/manual/es/function.empty.php"][B]empty()[/B][/URL]. Isset solo comprueba que el valor no sea NULL.

BÁRBARO, muchisimas gracias. Me re sirvió y soluciono mi problema.

Etiquetas: diseño-web, formulario
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:22.