Foros del Web » Programando para Internet » PHP »

problemas con ereg para validar direccion de correo

Estas en el tema de problemas con ereg para validar direccion de correo en el foro de PHP en Foros del Web. Intento validar una dirección de correo: ereg("[a-z0-9_\-\.]+@[a-z0-9\-]+\.([a-z]{1,3})", $email todo funciona bien hasta que le pongo que el campo del tipo de dominio tenga un rango ...
  #1 (permalink)  
Antiguo 08/10/2003, 14:34
 
Fecha de Ingreso: octubre-2003
Mensajes: 109
Antigüedad: 20 años, 7 meses
Puntos: 1
problemas con ereg para validar direccion de correo

Intento validar una dirección de correo:

ereg("[a-z0-9_\-\.]+@[a-z0-9\-]+\.([a-z]{1,3})", $email

todo funciona bien hasta que le pongo que el campo del tipo de dominio tenga un rango de repeticiones.

entonces es cuando me valida direcciones del tipo:
[email protected]slosquequieraincluidalañ

¿Alguien sabe que estoy haciendo mal?

Gracias
  #2 (permalink)  
Antiguo 08/10/2003, 14:56
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Si miras en los comentarios de los usuarios de ereg() (www.php.net/ereg) veras expresiones regulares para validar emails.

Espero que te sirva alguna de ellas.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 08/10/2003, 18:20
 
Fecha de Ingreso: octubre-2003
Mensajes: 109
Antigüedad: 20 años, 7 meses
Puntos: 1
He acudido a php.net y he cambiado lo que tenía por esto

ereg("^[a-z0-9_\-\.]+@[a-z0-9\-]+\.[a-z]{2,4}$", $email)

ya funciona.

gracias por la ayudita

:)
  #4 (permalink)  
Antiguo 09/10/2003, 07:17
 
Fecha de Ingreso: noviembre-2002
Mensajes: 190
Antigüedad: 21 años, 5 meses
Puntos: 0
buenas esta función quizas te sirva:

function comprobar_email($email){
$mail_correcto = 0;
//compruebo unas cosas primeras
if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
//miro si tiene caracter .
if (substr_count($email,".")>= 1){
//obtengo la terminacion del dominio
$term_dom = substr(strrchr ($email, '.'),1);
//compruebo que la terminación del dominio sea correcta
if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
//compruebo que lo de antes del dominio sea correcto
$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
if ($caracter_ult != "@" && $caracter_ult != "."){
$mail_correcto = 1;
}
}
}
}
}
if ($mail_correcto)
return 1;
else
return 0;
}

Saludos!
  #5 (permalink)  
Antiguo 08/01/2008, 21:25
Avatar de reyesoft  
Fecha de Ingreso: abril-2006
Ubicación: San Rafael, Mendoza
Mensajes: 311
Antigüedad: 18 años, 1 mes
Puntos: 15
De acuerdo Re: problemas con ereg para validar direccion de correo

Cita:
Iniciado por ezetra Ver Mensaje
He acudido a php.net y he cambiado lo que tenía por esto

ereg("^[a-z0-9_\-\.]+@[a-z0-9\-]+\.[a-z]{2,4}$", $email)
No funcionaría con un mail [email protected]. Por tanto recomiendo
Código PHP:
function validar_correo($valor)
{
  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}$'$valor))
    return 
true;
  else
    return 
false;

Un saludo...
__________________
Pablo Reyes

Compra/venta saldos PayPal, Skrill, Neteller, Bitcoins, etc.
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 13:29.