Para validar una dirección de correo vamos a usar una expresión regular con la función preg_match , esta función nos devolverá un numero mayor que 0 si es correcto o 0 si no coincide el texto con la expresión regular, el código es:
if (!preg_match('{^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$}',$_POST['email'])) { echo "error, no es un correo valido"; }
La explicación de ese código seria: «si NO (!) devuelve un valor (no coincidió)» quitandole el ! seria:
if (preg_match('{^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$}',$_POST['email'])) { echo "Correo Valido"; }
En PHP existe una función que permite validar si un campo de correo electrónico está o no bien escrito, por alguna razón (en mi caso no me funciona, la función es filter-var. si alquien la puede hacer trabajar que me indique como es por favor
Aqui otra expresión regular:
^[a-z0-9.!\#$%&\’*+-/=?^_`{|}~]+@([0-9.]+|([^\s\'»<>@,;]+\.+[a-z]{2,6}))$