Foros del Web » Programando para Internet » PHP »

Entender validar correo en php

Estas en el tema de Entender validar correo en php en el foro de PHP en Foros del Web. Hola me ha salido este problema de logica soy nuevo entendiendo las expresiones regulares no hay error en el codigo el detalle no entiendo bien ...
  #1 (permalink)  
Antiguo 20/03/2013, 08:26
 
Fecha de Ingreso: febrero-2013
Mensajes: 15
Antigüedad: 11 años, 2 meses
Puntos: 0
Entender validar correo en php

Hola me ha salido este problema de logica soy nuevo entendiendo las expresiones regulares no hay error en el codigo el detalle no entiendo bien esta expresion de validar el correo esta funcion valida correctamente el correo

tengo esta expresion regular
Código PHP:
Ver original
  1. function verificaremail($email){
  2.       if (!preg_match("/^([a-zA-Z0-9._-]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$/",$email)){
  3.           return FALSE;
  4.                
  5.       } else {
  6.            return TRUE;
  7.                
  8.       }
  9.     }
esta parte si entiendo
-en la primera me dice que necesito cualquier caracter de la a-z o A-Z o 0-9 .-_ el + significa que pueden entrar mas caracteres despues debe de ir un @ asi tambien lo entiendo ahora despues de la arroba sigue el proveedor de correo que puede ser yahoo o hotmail no se despues un . y la ultima me dice que recibe cualquier caracter de la a-z o de la A-Z de 2 a 4 caracteres todo esto si lo entiendo
entonces el correo valido seria asi [email protected] por un ejemplo
lo que ya no entiendo seria esta parte cuando ingresaron este correo no me marco error
ejemplo [email protected]
no hay error pero mi logica esta chocando para poder entender por que no marco error.
segun yo mi expresion solo valida un . despues del proveedor del servicio ya no valida mas puntos entonces la verdad no entiendo espero que me ayuden

perdon por escribir mucho pero creo que solo asi explicando todo se entenderia mejor
graciasss por su comprension saludosss espero que me ayuden
  #2 (permalink)  
Antiguo 20/03/2013, 08:30
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Entender validar correo en php

y si pruebas con esta

Código PHP:
Ver original
  1. if(preg_match("/^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$/", $email))
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 20/03/2013, 08:35
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Entender validar correo en php

Si te fijas en tu expresión regular después de la arroba, tienes incluido el punto en el rango por eso te permite correos de ese tipo:

Cita:
@([a-zA-Z0-9.-]+)
Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 20/03/2013, 09:19
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Entender validar correo en php

Mira no soy muy experto en expresiones regulares pero entendería que con esta parte "@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})" le dices que despues de la arroba puede llevar cualquier dominio (no solo hotmail y yahoo) con letras y numeros luego un punto "." y luego cualquier letra de 2 a 4 caracteres, la expresion está correcta por lo tanto el ejemplo que tu mensionas de [email protected] no te marcará el error porque cumple los requisitos de la expresion regular puedes verlo si fragmentas la direccion "fkfddfj" es texto luego lleva la "@" luego "prodigy" que es un dominio, luego "mx", luego "net", posiblemente te diras que eso talvez no exista, pero eso ya no es trabajo de la expresion regular, ya que ella no valida existencia de dominios únicamente valida estructura... ya si lo que quieres es que te valide que ingresen dominios reales ahi tienes que buscar otra forma....

Etiquetas: correo, entender
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 14:55.