08/10/2010, 07:50
|
| | | Fecha de Ingreso: septiembre-2010 Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses Puntos: 331 | |
Pequeñísimo aporte: función para validar emails Espero que a alguien le sirva: Código PHP: <?php function validareMail($xEmail){ /** * Validez de la dirección */ $xValid = true; /** * Posición de la arroba en la dirección para obtener dirección y dominio */ $atPos = strrpos($xEmail, '@'); //Si $atPos es booleana Y es falso entonces no es email if(is_bool($atPos) && !$atPos){ $xValid = false; }else{ /** * El dominio, la parte posterior desde la posición de arroba */ $xDomain = substr($xEmail, $atPos+1); /** * Idem anterior para la dirección */ $xAddr = substr($xEmail, 0, $atPos); /** * La longitud de la direccion */ $xAddrLen = strlen($xAddr); /** * La longitud del dominio */ $xDomainLen = strlen($xDomain); //La dirección ha de ser >1 y <64 if ($xAddrLen < 1 || $xAddrLen > 64){ $xValid = false; //el dominio >1 y <64 }else if ($xDomainLen < 1 || $xDomainLen > 255){ $xValid = false; //Validación mediante expresiones regulares, no puede contener punto al comienzo }else if ($xAddr[0] == '.' || $xAddr[$xAddrLen-1] == '.'){ $xValid = false; //No puede contener barras // o \\ }else if (preg_match('/\\.\\./', $xAddr)){ $xValid = false; }else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $xDomain)){ $xValid = false; }else if (preg_match('/\\.\\./', $xDomain)){ $xValid = false; }else if(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\","",$xAddr))) { if (!preg_match('/^"(\\\\"|[^"])+"$/', str_replace("\\\\","",$xAddr))){ $xValid = false; } } //Debe existir el dominio if ($xValid && !(checkdnsrr($xDomain,'MX') || checkdnsrr($xDomain,'A'))){ $xValid = false; } } return $xValid; } /** * Implementación */ $email = "[email protected]"; if(!validareMail($email)){ echo "Email $email es incorrecto"; } else{ echo "$email es correcto"; } $email = "[email protected]"; if(!validareMail($email)){ echo "<br>Email $email es incorrecto"; } else{ echo "<br>$email es correcto"; } ?> |