
VALIDAR EMAIL
Hasta ahora siempre había validado los emails emails en PHP usando expresiones regulares. Pero un compañero me comentó una manera bastante fácil y sencilla para validarlos. Y es usando la función filter_var y resulta bastante sencillo y seguro.
Pongo un ejemplo sencillo para que se pueda ver su funcionamiento.
$email = 'pruebas@gmail.com';
$result = filter_var($email, FILTER_VALIDATE_EMAIL);
var_dump($result);
//Mostrará el correo
$email = 'pruebasgmail.com';
$result = filter_var($email, FILTER_VALIDATE_EMAIL);
var_dump($result);
//Mostrará false
$email = 'pruebas@gmailcom';
$result = filter_var($email, FILTER_VALIDATE_EMAIL);
//Mostrará false
var_dump($result);
Con lo explicado anterior mente se valida que la dirección email está construida correctamente es decir: nombredeusuario@dominio.com. Pero con php podemos ir un paso más allá y comprobar que el dominio del email existe y consiste en usar la función checkdnsrr, esta función busca DNS de registros del tipo del registro que corresponde a un dominio.
Ejemplo:
list($name, $domain) = explode('@',$email);
if (checkdnsrr(idn_to_ascii($domain), 'A'))
{
. . .
}
- MX
- TXT
- CNAME
- A
- NS
- SOA
- PTR
- AAAA
- ANY
- A6
- SRV
- NAPTR