Listar un directorio con php es muy útil para visualizar de forma rápida el contenido de una carpeta de nuestro proyecto, si añadimos un...
Validar un correo con php
Proteger el envio de un input de tipo email es una buena solución para evitar que se envien datos incorrectos al servidor, crearemos un archivo unico para reutilizar en cualquier proyecto web.
Comenzamos creando el script PHP en el creamos una función a la que nombramos “filtroMail()” y le pasamos un valor, creamos un “if”, condición en la que filtramos el valor recibido con FILTER_VALIDATE_EMAIL, si este devuelve FALSE, hacemos un “return false” y la función devolverá FALSE .
<?php
function filtroMail($valor){
if(filter_var($valor, FILTER_VALIDATE_EMAIL) === FALSE){
return false;
Creamos un “else” en el que vamos a incluir varios “if” y a usar expresiones regulares mediante “preg_match”, una función de PCRE que realiza una comparación con una expresión regular, para proteger y evitar errores en los datos enviados, vamos a descartar algunos caracteres que no queremos que se envien a traves del formulario como: ‘, “, ;, creamos un “if”, condición “preg_match” y la correspondiente expresión regular, le pasamos el valor y hacemos un “return false”, la función devolverá FALSE .
}else{
if (preg_match("/(['])/",$valor)) {
return false;
}
if (preg_match('/(["])/',$valor)) {
return false;
}
if (preg_match("/([;])/",$valor)) {
return false;
}
Creamos otro “if”, condición “preg_match”, y una expresión regular que identifique un orden correcto de caracteres para un correo electrónico, por lo que en este caso, la condición a cumplir seria si la condición es diferente de la expresión regular, asi que usaremos el operador “!” en “preg_match” o lo que es lo mismo “!preg_match”, le pasamos el valor y hacemos un “return false”, la función devolverá FALSE .
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$valor)) {
return false;
}
Por ultimo, creamos en “else” en el que saneamos el valor devuelto con “FILTER_SANITIZE_EMAIL” y devolvemos TRUE.
}else{
$valor = filter_var($valor, FILTER_SANITIZE_EMAIL);
return true;
}
A continuación escribimos el siguiente código:
if (!filtroMail($valor)) {
echo 'Email incorrecto';
}else {
echo 'Email correcto';
}
Guardamos el archivo como “funcion_validar_mail.php”
A continuación creamos el archivo “index.php” en el que insertamos un formulario que enviará por POST los valores al archivo “funcion_validar_mail.php”.
index.php
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Didesweb, proteger el campo email</title>
<!-- Didesweb -->
<!-- Diseño y desarrollo web -->
<!-- https://didesweb.com/-->
<!-- Este obra está protegida bajo licencia Creative Commons Attribution -->
</head>
<body>
<h1>© Didesweb, proteger el campo email</h1>
<form action="funcion_validar_mail.php" method="POST">
<input type="text" name="variable_input"/>
<input type="submit" value="enviar"/>
</form>
</body>
</html>
El código completo de la función:
funcion_validar_mail.php
<?php
$valor = $_POST['variable_input'];
?>
<?php
function filtroMail($valor){
if(filter_var($valor, FILTER_VALIDATE_EMAIL) === FALSE){
return false;
}else{
if (preg_match("/(['])/",$valor)) {
return false;
}
if (preg_match('/(["])/',$valor)) {
return false;
}
if (preg_match("/([;])/",$valor)) {
return false;
}
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$valor)) {
return false;
}else{
$valor = filter_var($valor, FILTER_SANITIZE_EMAIL);
return true;
}
}
}
if (!filtroMail($valor)) {
echo 'Email incorrecto';
}else {
echo 'Email correcto';
}
?>
Puedes ver y descargar el código de este archivo en mi cuenta de GitHub
Valoraciones
4 valoraciones
Tu valoración
Quizás te interese ...
Pasar variables en php es muy fácil, lo primero que tenemos que saber es que el ámbito de una variable es el sitio donde la variable tiene...
Los parámetros son variables que recibe una función para utilizarlas en la ejecución de la misma, estos se pueden pasar de 3 formas...
En este artículo vamos a crear un mecanismo para mostrar las tablas de una base de datos en MySQL dinámicamente, el objetivo es que el...
Manie 16 noviembre, 2022
Thanks for finally talking about
Omer 10 noviembre, 2022
Keep on writing, great job!
Miguel Ángel Aguilar 28 marzo, 2021
Solo sirve para validar la redacción del email que igualmente puede ser falso
Roque Arnás 15 abril, 2021
Correcto Miguel Ángel, solo estamos validando el campo email para comprobar que el formato sea correcto, para comprobar si el correo existe necesitas usar la librería VerifyEmail.php o un servicio profesional como Verificaremails