Foros del Web » Programando para Internet » PHP »

Problema validacion Email

Estas en el tema de Problema validacion Email en el foro de PHP en Foros del Web. Hola: Tengo el siguiente codigo de formulario y envio de email y lo que no me funciona es la validacion del email no me entra ...
  #1 (permalink)  
Antiguo 25/11/2010, 15:28
Avatar de esnalca  
Fecha de Ingreso: enero-2008
Mensajes: 77
Antigüedad: 16 años, 9 meses
Puntos: 0
Pregunta Problema validacion Email

Hola:

Tengo el siguiente codigo de formulario y envio de email y lo que no me funciona es la validacion del email no me entra ni en el if o no se...soy bastante novato la verdad si quito el if me manda el e-mail pero quiero que tengan que meter un email bueno.
El echo($mail) si devuelve el valor pero luego no se que pasa.



Muchas gracias



Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
   	<title>Mándanos tus comentarios</title> 
</head> 

<body> 
<form id="email" name="email" action="enviar.php" method="post"> 
<label>Nombre: <input type="text" name="nombre" id="nombre"></label> 
<br>
<label>Email: <input type="text" name="mail" id="mail"></label> 
<br>
<label>Mensaje: <textarea name="mensaje" id="mensaje" cols="40" rows="8"></textarea></label>
<br> 
<input name="submit" type="submit" value="enviar"> 
</form> 
</body> 
</html> 




Código PHP:
$nombre $_POST['nombre'];
$mail $_POST['mail'];
$mensaje $_POST['mensaje'];
 
 
  echo(
$mail);

  
//Mirando si un email es valido o no...
  
       
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$"$mail ) ) { 
          return 
true
            
$header 'From: ' $mail " \r\n";
            
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
            
$header .= "Mime-Version: 1.0 \r\n";
            
$header .= "Content-Type: text/plain";

            
$mensaje "Este mensaje fue enviado por " $nombre "\r\n";
            
$mensaje .= "Su e-mail es: " $mail " \r\n";
            
$mensaje .= "Mensaje: " $_POST['mensaje'] . " \r\n";

            
$asunto 'Contacto';

            
mail('[email protected]',$asunto ,$mensaje);
            echo(
'jugar');
    
       } else { 
           return 
false;   
       } 
  #2 (permalink)  
Antiguo 25/11/2010, 15:44
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 9 meses
Puntos: 7
Respuesta: Problema validacion Email

Hola,

Prueba ésto y ya nos cuentas!

Código PHP:
    /*
    Creo la función validar_email() */
    
function validar_email($email){
        if(!
ereg("^([a-zA-Z0-9\._]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})$"$email)){
            return 
false;
        }else{
            return 
true;
        }
    }

    
/*
    Codifico la cadena HTML */
    
$nombre htmlentities($_POST['nombre']);
    
$mail htmlentities($_POST['mail']);
    
$mensaje nl2br(htmlentities($_POST['mensaje']));
    
    
/*
    Llamo a la función para que valide el e-mail */
    
if(!validar_email($mail)){
        echo 
"<script>alert('E-mail no válido o vacío'); history.go(-1);</script>";
        return 
false;
    }
    

    
$header "From: $mail \r\n";
    
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
    
$header .= "Mime-Version: 1.0 \r\n";
    
$header .= "Content-Type: text/plain";
    
    
$mensaje "Este mensaje fue enviado por $nombre \r\n";
    
$mensaje .= "Su e-mail es: $mail \r\n";
    
$mensaje .= "Mensaje: $mensaje \r\n";
    
    
$asunto 'Contacto';
    
    if(
mail('[email protected]',$asunto ,$mensaje)){
        die(
"Enviado");
    
    }else{ 
        die(
"error");
    } 

Etiquetas: email
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:59.