Les Forums Webmaster Québec


Fonction PHP permettant de vérifier l'e-mail

 
Poster un nouveau sujet   Répondre au sujet    Forum Webmaster Québec Index du Forum // Développement Web
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
creavizion
Web Admin


Inscrit le: 12 Sep 2004
Messages: 51
Localisation: Montréal

MessagePosté le: Lun Nov 08, 2004 11:03 am    Sujet du message: Fonction PHP permettant de vérifier l'e-mail Répondre en citant
Salut j'aimerais savoir si qq1 pourais ou aurais une fonctionne php pour vérifier que l'e-mail de l'usager est valide! merci d'avance Smile

p.s j'ai une couille aussi pour oublier l'usager a accepter les ''rêglement'' une idée!??? (Checkbox j'veux qu'il sois cocher sinon y peux pas regist)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur MSN Messenger
matt
Web Admin


Inscrit le: 06 Avr 2004
Messages: 157
Localisation: Trois-Rivières

MessagePosté le: Lun Nov 08, 2004 11:08 am    Sujet du message: Re: Fonction PHP permettant de vérifier l'e-mail Répondre en citant
creavizion a écrit:
Salut j'aimerais savoir si qq1 pourais ou aurais une fonctionne php pour vérifier que l'e-mail de l'usager est valide! merci d'avance Smile

p.s j'ai une couille aussi pour oublier l'usager a accepter les ''rêglement'' une idée!??? (Checkbox j'veux qu'il sois cocher sinon y peux pas regist)


Salut Jonathan,

1)
Code:
  function validateEmail($email) {
    if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
     return 1;
   }
   return 0;
  }


Voici le code que j'utilise pour valider mes adresses courriels. Ça pourrait être mieux. Ca pourrait vérifier l'existence d'une zone MX mais bon Smile

2) Bien heureux que tu ailles une couille. Non mais serieusement, effectue une validation javascript et php sur ton champ checkbox, il ne devrait pas avoir de problème.

Matt
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur MSN Messenger Numéro ICQ
creavizion
Web Admin


Inscrit le: 12 Sep 2004
Messages: 51
Localisation: Montréal

MessagePosté le: Lun Nov 08, 2004 11:10 am    Sujet du message: Répondre en citant
2) Oui je comprend qu'il faut que je les vérifs, mais disons que j'sais pas trop comment (La honte Embarassed)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur MSN Messenger
matt
Web Admin


Inscrit le: 06 Avr 2004
Messages: 157
Localisation: Trois-Rivières

MessagePosté le: Mar Jan 25, 2005 3:40 pm    Sujet du message: Répondre en citant
Un peu tard mais,

Voici une mise à jour de la fonction.
Code:

function validateEmail($email) {
   if (eregi("^[0-9a-z_]([-_.]?[0-9a-z])*@[0-9a-z][-.0-9a-z]*\\.[a-z]{2,3}[.]?$", $email, $check)) {
     $host = substr(strstr($check[0], '@'), 1).".";
    if (substr(PHP_OS, 0, 3) == 'WIN') {
     //*******************************
     //  Windows Check
     //*******************************
       if (getmxrr_winNT($host, $validate_email_temp) )
         return 1;
              // Vérifier les DNS qui ne sont pas MX.  Ca marche pareil selon la RFC.
       if(checkdnsrr_winNT($host,"ANY"))
         return 1;
     } else {
       //************************************
      //  Unix Check
      //***********************************
      if (getmxrr($host, $validate_email_temp) )
         return 1;
       // Vérifier les DNS qui ne sont pas MX.  Ca marche pareil selon la RFC.
       if(checkdnsrr($host,"ANY"))
         return 1;
    
     }
    }
   return 0;
}

function checkdnsrr_winNT( $host, $type = '' )
{
   if( !empty( $host ) )
   {
       # Set Default Type:
       if( $type == '' ) $type = "MX";
       @exec( "nslookup -type=$type $host", $output );
       while( list( $k, $line ) = each( $output ) )
       {
           # Valid records begin with host name:
           if( eregi( "^$host", $line ) )
           {
               # record found:
               return true;
           }
       }
       return false;
   }
}

function getmxrr_winNT( $hostname, &$mxhosts )
{
   if( !is_array( $mxhosts ) ) $mxhosts = array();
   if( !empty( $hostname ) )
   {
       @exec( "nslookup -type=MX $hostname", $output, $ret );
       while( list( $k, $line ) = each( $output ) )
       {
           # Valid records begin with hostname:
           if( ereg( "^$hostname\tMX preference = ([0-9]+), mail exchanger = (.*)$", $line, $parts ) )
           {
               $mxhosts[ $parts[1] ] = $parts[2];
           }
       }
       if( count( $mxhosts ) )
       {
           reset( $mxhosts );
           ksort( $mxhosts );
           $i = 0;
           while( list( $pref, $host ) = each( $mxhosts ) )
           {
               $mxhosts2[$i] = $host;
               $i++;
           }
           $mxhosts = $mxhosts2;
           return true;
       }
       else
       {
           return false;
       }
   }
}


Les fonctions _winNT ne sont pas nécessaire si vous êtes hébergés sur une plateforme unix.

J'espère que ca pourra aider quelqu'un.

Matt Coding
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur MSN Messenger Numéro ICQ
Poster un nouveau sujet   Répondre au sujet    Forum Webmaster Québec Index du Forum // Développement Web Toutes les heures sont au format GMT - 5 Heures
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum

Actualités Webmaster / Le Blogue        Syndication RSS du forum :

Navigation rapide :   Forum sur le référencement Web   Forum sur le développement de sites Web

Partenaires :    Le Blogue du Québec    Hébergement Web Québec    NOFX Wallpapers and Lyrics    Big Mac Index

   Acheter des noms de domaines