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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Validación e-mail formulario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Validación e-mail formulario  (Leído 3,302 veces)
el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 21.637


La libertad no se suplica, se conquista


Ver Perfil WWW
Validación e-mail formulario
« en: 8 Mayo 2012, 19:38 pm »

Validar e-mail:

Código
  1. function verify_email($email){
  2.  
  3.    if(!preg_match('/^[_A-z0-9-]+((\.|\+)[_A-z0-9-]+)*@[A-z0-9-]+(\.[A-z0-9-]+)*(\.[A-z]{2,4})$/',$email)){
  4.        return false;
  5.    } else {
  6.        return $email;
  7.    }
  8. }

Código
  1.    function EmailValidation($email)
  2.    {
  3.    $email = htmlspecialchars(stripslashes(strip_tags($email))); //parse unnecessary characters to prevent exploits
  4.    if ( eregi ( '[a-z||0-9]@[a-z||0-9].[a-z]', $email ) )
  5.    { //checks to make sure the email address is in a valid format
  6.    $domain = explode( "@", $email ); //get the domain name
  7.    if ( @fsockopen ($domain[1],80,$errno,$errstr,3))
  8.    {
  9.    //if the connection can be established, the email address is probably valid
  10.    return true;
  11.    } else
  12.    {
  13.    return false; //if a connection cannot be established return false
  14.    }
  15.    return false; //if email address is an invalid format return false
  16.    }
  17.    }



Código
  1. function validar_email($email) {
  2.  
  3. list($local, $domain) = explode("@", $email);
  4.  
  5. $pattern_local = '^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$';
  6. $pattern_domain = '^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$';
  7.  
  8. $match_local = eregi($pattern_local, $local);
  9. $match_domain = eregi($pattern_domain, $domain);
  10.  
  11. if ($match_local && $match_domain) {
  12. return 1;
  13. } else {
  14. return 0;
  15. }
  16. }

En PHP 5:

Se añade la funcionalidad de filter_var

Código
  1. if(filter_var("prueba@dominio.com", FILTER_VALIDATE_EMAIL)){
  2. echo "Ok";
  3. } else {
  4. echo "Error";
  5. }

Usando filter _var y comprobando que tenga un punto el dominio con una expresión regular:

Código
  1. function validateEmailAddress($email) {
  2.    return filter_var($email, FILTER_VALIDATE_EMAIL) && preg_match('/@.+\./', $email);
  3. }

Ejemplo Wordpress (usando expresiones regulares)

Código
  1.    function is_email($email) {
  2.     if( strlen( $email ) < 3 ){
  3.      return false;
  4.     }
  5.     if( strpos( $email, '@', 1 ) === false ){
  6.      return false;
  7.     }
  8.     list( $local, $domain ) = explode( '@', $Valor, 2 );
  9.     if( !preg_match( '/^[a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]+$/', $local ) ){
  10.      return false;
  11.     }
  12.     if( preg_match( '/\.{2,}/', $domain ) ){
  13.      return false;
  14.     }
  15.      if( trim( $domain, " \t\n\r\0\x0B." ) !== $domain ){
  16.      return false;
  17.     }
  18.      $subs = explode( '.', $domain );
  19.      if( 2 > count( $subs ) ){
  20.      return false;
  21.     }
  22.     foreach ( $subs as $sub ) {
  23.      if( trim( $sub, " \t\n\r\0\x0B-" ) !== $sub ){
  24.       return false;
  25.      }
  26.      if( !preg_match('/^[a-z0-9-]+$/i', $sub ) ){
  27.       return false;
  28.      }
  29.     }
  30.     return true;
  31.    }


Verificar e-mail mirando registro MX si es válido,  útil para separar nombre y dominio de un e-mail


Código
  1. function verify_email_dns($email){
  2.  
  3.    // This will split the email into its front
  4.    // and back (the domain) portions
  5.    list($name, $domain) = explode('@',$email);
  6.  
  7.    if(!checkdnsrr($domain,'MX')){
  8.  
  9.        // No MX record found
  10.        return false;
  11.  
  12.    } else {
  13.  
  14.        // MX record found, return email
  15.        return $email;
  16.  
  17.    }
  18. }


Código
  1. $string = 'some_name@somedomain.com';
  2. $res = explode('@', $string);
  3. // array
  4. echo $res[0];
  5. $name = $res[0];
  6. echo $name;


substr

Código
  1. $mail = "some_name@somedomain.com";
  2. echo substr($mail, 0, strpos($mail, '@') );
  3.  

explode

Código
  1. list($name, $domain) = explode('@', $mail);
  2. echo $name;


« Última modificación: 16 Mayo 2012, 12:56 pm por el-brujo » En línea

Graphixx


Desconectado Desconectado

Mensajes: 1.336


Full Stack Developer


Ver Perfil WWW
Re: Validación e-mail formulario
« Respuesta #1 en: 9 Mayo 2012, 20:26 pm »

Muy muy bueno este material para depurar Bases de Datos, sobretodo lo de la comprobacion de registros MX.


En línea

Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: Validación e-mail formulario
« Respuesta #2 en: 10 Mayo 2012, 19:37 pm »

Que ha pasado, un aporte del el-brujo.
Se nota que hace rato que no paso por el foro.
Excelente.

Saludos
En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Validación e-mail formulario
« Respuesta #3 en: 11 Mayo 2012, 16:55 pm »

De todas creo que esta es la mas rápida:
Código
  1. if(filter_var("prueba@dominio.com", FILTER_VALIDATE_EMAIL)){
  2. echo "Ok";
  3. } else {
  4. echo "Error";
  5. }

Igual la 2º y 3º no es recomendado su uso ya que ocupan eregi para su funcionamiento y esa funcion es obsoleta desde PHP >= 5.3.0.

Saludos.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
jhonatanAsm


Desconectado Desconectado

Mensajes: 376



Ver Perfil WWW
Re: Validación e-mail formulario
« Respuesta #4 en: 12 Mayo 2012, 03:21 am »

es la mas rápida... ,
   y la más segura (aunque en estos tiempos, la que menos fallos se le puedan encontrar) ??

salu2.
En línea

mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Validación por mail
PHP
ma__tt 5 3,489 Último mensaje 26 Diciembre 2009, 21:02 pm
por [u]nsigned
Ayuda con validacion de formulario PHP « 1 2 »
PHP
oscarj24 10 6,151 Último mensaje 10 Junio 2010, 02:51 am
por oscarj24
validacion formulario
Desarrollo Web
marcelo3d 8 4,920 Último mensaje 2 Noviembre 2011, 17:28 pm
por Mr. Crowley
validación formulario html5
Desarrollo Web
kakashi20 1 1,987 Último mensaje 21 Febrero 2013, 23:34 pm
por Novlucker
Validacion de formulario con javascript
Desarrollo Web
Sistematic 9 3,550 Último mensaje 18 Agosto 2014, 02:49 am
por Sistematic
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines