Blog
Las validaciones en PHP o cualquier otro lenguajes son muy importantes, ya que permiten corroborar que los datos ingresados por diversos usuarios son los esperados. Por ejemplo realizando las validaciones adecuadas se pueden evitar ataques a un sitio web a través de inyecciones SQL.
Para validad un email en PHP se puede utilizar las tan temibles expresiones regulares, que básicamente sirven para encontrar una determinada combinación de caracteres dentro de una cadena de texto. Para utilizar estas expresiones en PHP vamos utilizar la función preg_match() la cual recibe dos parámetros, por un lado la expresión regular y por el otro el email el cual se desea validar:
<?php if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', "mi.email.correcto@gmail.com")) { echo "El email mi.email.correcto@gmail.com es correcto."; } if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', "mi.email.incorrecto")) { echo "El email mi.email.incorrecto es correcto."; } ?>
El resultado de ejecutar el código anterior sería: “El email mi.email.correcto@gmail.com es correcto.”
Otra opción, tal vez la mas sencilla que proporciona PHP, es la función filter_var(), la cual aparte de validar los email, también valida los números o ip.
El siguiente código muestra un ejemplo sencillo del uso de la función filter_var():
<?php $email_correcto = "mi.email.correcto@gmail.com"; $email_incorrecto = "mi.email.incorrecto"; if (filter_var($email_incorrecto, FILTER_VALIDATE_EMAIL)) { echo "Esta dirección de correo ($email_incorrecto) es válida."; } if (filter_var($email_correcto, FILTER_VALIDATE_EMAIL)) { echo "Esta dirección de correo ($email_correcto) es válida."; } ?>
Obviamente que el resultado de ejecutar este código va a ser: “Esta dirección de correo (mi.email.correcto@gmail.com) es válida.”
Estas son dos formas distintas de realizar validaciones de email en php que siempre son muy útiles y recomendables para realizar en un sitio web.