elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Cómo crear en php un verificador de varios emails básico?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cómo crear en php un verificador de varios emails básico?  (Leído 3,144 veces)
gh1E

Desconectado Desconectado

Mensajes: 229



Ver Perfil
Cómo crear en php un verificador de varios emails básico?
« en: 8 Julio 2016, 17:44 pm »

Hola amigos  :D;

Por favor agradezco de antemano por el apoyo dándome una guía, es posible crear en php un validador de varios correos?, que no sea tan complejo básicamente que revise si están correctamente escritos, no estén repetidos y que quizá se pueda todos de un solo paso mediante ingreso de las direcciones en un cuadro de texto o importando un csv.

Nuevamente muchas gracias.

Salu2 a to2  ::)


En línea

Si no lo sabes...averigua...
SEr o nO SeR ...( y eso a quien le importa???)
gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
Re: Cómo crear en php un verificador de varios emails básico?
« Respuesta #1 en: 9 Julio 2016, 18:37 pm »

PHP tiene funciones para comprobar este tipo de cosas, hechale un vistazo a la función filter_var() con el flag FILTER_VALIDATE_EMAIL para comprobar que sea válido:

Código
  1. $emails = trim($_POST['emails']);
  2. $array = explode(PHP_EOL, $emails);
  3. $validated = [];
  4. foreach ($array as $email) {
  5.    $validated[] = filter_var($email, FILTER_VALIDATE_EMAIL);
  6. }

Ahora, para quitar los duplicados se usa la función array_unique():

Código
  1. $emails = array_unique($validated);

Los emails tendrían que ser introducidos uno por línea, en un textarea llamada emails:

Código
  1. <textarea name="emails"></textarea>

Si quieres cambiar esto, por ejemplo separados por una coma y un espacio, simplemente cambias la segunda linea del script para que busque una coma y un espacio en lugar de una nueva linea:

Código
  1. $array = explode(', ', $_POST['emails']);


En línea

gh1E

Desconectado Desconectado

Mensajes: 229



Ver Perfil
Re: Cómo crear en php un verificador de varios emails básico?
« Respuesta #2 en: 1 Agosto 2016, 18:56 pm »


Hola;

Muchas gracias gAb1 por tu ayuda, de verdad muy claro y directo, me dejó un poco más clara la idea.

Si no es molestar tengo algo creo no me está funcionando muy bien, hay manera que me muestre lo correos ingresados erróneamente en otra página generada o mejor aún en un archivo excel?

Tengo hasta ahora códigos simples en 2 archivos.

emails.html
Código:
<html>
<form action="validatemail.php" method="post">
<textarea name="emails"></textarea>
<input type="submit" value="Comprobar" />
</form>
</html

validatemail.php
Código:
 <?php
     $emails = trim($_POST['emails']);
    $array = explode(PHP_EOL, $emails);
    $validated = [];
    foreach ($array as $emails) {
       $validated[] = filter_var($emails, FILTER_VALIDATE_EMAIL);
    }
    ?>

Lo siento por la falta de conocimiento en este tema, muchas gracias como siempre a su ayuda desinteresada.

Salu2.
En línea

Si no lo sabes...averigua...
SEr o nO SeR ...( y eso a quien le importa???)
gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
Re: Cómo crear en php un verificador de varios emails básico?
« Respuesta #3 en: 3 Agosto 2016, 04:56 am »

Por supuesto, para esto usaremos un if que compruebe si el email es correcto, y si no lo es lo agregaremos a otro array:

Código
  1. $emails     = trim($_POST['emails']);
  2. $array      = explode(PHP_EOL, $emails);
  3. $validated  = $invalid = [];
  4.  
  5. foreach ($array as $email) {
  6.  
  7.    // si el email es válido se añade al array validated
  8.    if ( filter_var($email, FILTER_VALIDATE_EMAIL) ) {
  9.  
  10.        $validated[] = $email;
  11.  
  12.    }
  13.  
  14.    // si no, se añade al array invalid
  15.    else {
  16.  
  17.        $invalid[] = $email;
  18.  
  19.    }
  20. }
  21.  
  22. // se eliminan los duplicados
  23. $emails = array_unique($validated);

Ahora para mostrar los resultados, lo que se hace hoy en dia es usar ajax para automaticamente, sin recargar la página, mostrar los válidos y los no válidos. Esto es realmente sencillo usando jQuery, busca aquí en el foro que tienes muchos ejemplos, o en la documentación: https://api.jquery.com/jquery.post/ Simplemente usando la función $.post (para enviar los emails) y uno de sus callbacks .done() (para actualizar el DOM con el resultado).
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines