Foros del Web » Programando para Internet » PHP »

Validar Email en formulario no funciona

Estas en el tema de Validar Email en formulario no funciona en el foro de PHP en Foros del Web. Buenas tardes! Tengo un formulario de contacto y quiero que no se envíe sin validar el email. Este es el código de la función de ...
  #1 (permalink)  
Antiguo 29/05/2015, 08:28
 
Fecha de Ingreso: mayo-2015
Mensajes: 4
Antigüedad: 9 años, 6 meses
Puntos: 0
Pregunta Validar Email en formulario no funciona

Buenas tardes!

Tengo un formulario de contacto y quiero que no se envíe sin validar el email. Este es el código de la función de validar:


Código PHP:
if ((strlen($_POST["mail"]) < 7) or (!filter_var($_POST["mail"], FILTER_VALIDATE_EMAIL))) { 
    echo 
"Debe introducir un email válido.";
    exit; } 
Hasta ahora había funcionado correctamente (no he cambiado nada, la verdad es que no sé porqué dejó de hacerlo) y ahora aunque metas un email correcto no lo pasa...

¿Me podéis ayudar???

Gracias de antemano
  #2 (permalink)  
Antiguo 29/05/2015, 09:09
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Validar Email en formulario no funciona

Si no has cambiado nada el problema no debería estar aquí. Pero haz la siguiente prueba:

Quita una de las dos condiciones y prueba, a ver si se efectúa correctamente, si es así vuelve a ejecutar el script con la otra condición únicamente. Así detectaremos cuál de las 2 da problemas.

Un saludo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...
  #3 (permalink)  
Antiguo 29/05/2015, 09:27
 
Fecha de Ingreso: mayo-2015
Mensajes: 4
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Validar Email en formulario no funciona

Hola Anonimo!

Gracias por tu respuesta. Pues si dejo el código así

Código PHP:
if (!filter_var($_POST["mail"], FILTER_VALIDATE_EMAIL)) { 
    echo 
"Debe introducir un email válido.";
    exit; } 
o así

Código PHP:
if ((strlen($_POST["mail"]) < 7)) { 
    echo 
"Debe introducir un email válido.";
    exit; } 
Ocurre lo mismo, no valida ningún email...
  #4 (permalink)  
Antiguo 29/05/2015, 09:34
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Validar Email en formulario no funciona

Entonces el problema está en otro lado. Postea el formulario y el script completo que trata los datos.

Un saludo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...
  #5 (permalink)  
Antiguo 29/05/2015, 09:47
 
Fecha de Ingreso: mayo-2015
Mensajes: 4
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Validar Email en formulario no funciona

Código del formulario:

<form id="fcontacto" action="http://www.tudominio.com/_lib/php/gracias.php" method="post" >
<div style="width: 100%; display: table-row;">
<div style="width: 70%; display: table-cell; float: left;">
<label for="nombre">Nombre y apellidos:</label>
<input name="t1" value="" type="text" class="textinput" style="margin-bottom: 12px;" id="nombre" maxlength="70" />
<label for="mail">Email:</label>
<input name="mail" value="" type="text" class="textinput" style="margin-bottom: 12px;" id="mail" maxlength="50" />

<label for="asunto">Asunto:</label>
<input name="t3" value="" type="text" class="textinput" style="margin-bottom: 12px;" id="asunto" maxlength="100" />
</div>
</div>
<div style="display: table-row; width: 100%;">
<div style="display: table-cell; margin-top: 24px;">
<label for="mensaje">Mensaje:</label>
<textarea name="t4" cols="50" rows="10" class="textinput" id="mensaje"></textarea>
<br />
<button type="submit" name="enviar" class="submit" onclick="validar();">Enviar</button>
<button type="reset" name="borrar" class="reset">Borrar</button>
</div>
</div>
</form>

Código del archivo "gracias.php"que valida y hace que se envíen los datos del formulario a un correo electrónico:

Código PHP:
<?php
if ((strlen($_POST["mail"]) < 7) or (!filter_var($_POST["mail"], FILTER_VALIDATE_EMAIL))) { 
    echo 
"Debe introducir un email válido.";
    exit; }

    
//Importamos las variables del formulario de contacto
@$t1 addslashes($_POST['t1']);
@
$mail addslashes($_POST['mail']);
@
$t3 addslashes($_POST['t3']);
@
$t4 addslashes($_POST['t4']);
 
//Preparamos el mensaje de contacto
$cabeceras "From: $mail\n" //La persona que envia el correo
 
"Reply-To: $mail\n";
$asunto "Contacto desde la pagina Web"//asunto aparecera en la bandeja del servidor de correo
$email_to "[email protected]"//cambiar por tu email
$contenido "$t1 ha enviado un mensaje desde la web www.tudominio.com\n"
"\n"
"Nombre: $t1\n"
"Email: $mail\n"
"Asunto: $t3\n"
"Mensaje: $t4\n"
"\n";
 
//Enviamos el mensaje y comprobamos el resultado
if (@mail($email_to$asunto ,$contenido ,$cabeceras )) {
 
//Si el mensaje se envía muestra una confirmación
die("Gracias por su interés, su mensaje se envio correctamente.");
}else{
 
//Si el mensaje no se envía muestra el mensaje de error
die("Error: Su información no pudo ser enviada, intentelo de nuevo más tarde");
}
?>
Gracias!

Etiquetas: contacto, email, formulario-php
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 09:01.