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


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  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 4,114 veces)
el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 21.668


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


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

: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,962 Último mensaje 26 Diciembre 2009, 21:02 pm
por [u]nsigned
Ayuda con validacion de formulario PHP « 1 2 »
PHP
oscarj24 10 7,223 Último mensaje 10 Junio 2010, 02:51 am
por oscarj24
validacion formulario
Desarrollo Web
marcelo3d 8 5,908 Último mensaje 2 Noviembre 2011, 17:28 pm
por Mr. Crowley
validación formulario html5
Desarrollo Web
kakashi20 1 2,495 Último mensaje 21 Febrero 2013, 23:34 pm
por Novlucker
Validacion de formulario con javascript
Desarrollo Web
Sistematic 9 4,652 Último mensaje 18 Agosto 2014, 02:49 am
por Sistematic
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines