IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Vérification de l'adresse e-mail [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut [Mail] Vérification de l'adresse e-mail
    Bonjour,

    Je viens de trouver ce script qui m'a l'air de convenir tout à fait (Validation avec interrogation du serveur)

    Mais je n'arrive pas à le tester en local (easy php). en fait je ne vois pas comment l'intégrer à partir d'un formulaire...un pti coup de main svp?

    merci par avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Re

    Je tourne en rond, je ne connais pas bcp le php.
    Pour précision voici le code en question :

    La première étape est similaire au second exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
    // Auteur : Communauté PEAR
    // Mise en exemple par Alexandre TRANCHANT
     
    //La variable $mail est-elle une adresse e-mail syntaxiquement valide ?
    $mail='john.doe@example.org';
     
    require 'PEAR.php'; //Appel de la librairie PEAR
    require 'Mail/RFC822.php'; //Appel de la librairie Mail_RFC822
     
    $lo_mail = Mail_RFC822::parseAddressList($mail, NULL, FALSE);
     
    if(PEAR::isError($lo_mail)){
        //$lo_mail est une erreur
        //l'adresse e-mail n'est donc pas valide
        echo $mail.'n\'est pas une adresse e-mail valide';
        die();
    } elseif ($lo_mail[0]->host=='localhost'){
        //le nom de domaine de cette adresse est localhost 
        //dans cet exemple on refuse ce genre de mail !
        echo $mail.'n\'est pas une adresse valide';
        die();
    } else {
        echo $mail.' est une adresse e-mail SYNTAXIQUEMENT valide';
    }
     
    //$lo_mail contient l'adresse e-mail stockée dans un tableau
     
    ?>
    La seconde étape extrait le nom de domaine de l'adresse e-mail entré.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <?php
     
    /*
    Voici le contenu de $lo_mail
    Array
    (
        [0] => stdClass Object
            (
                [personal] => 
                [comment] => Array
                    (
                    )
    
                [mailbox] => john.doe
                [host] => example.org
            )
    
    )*/
     
    $ls_domaine=$lo_mail[0]->host;
     
    //$ls_domaine contient example.org
     
    ?>
    La dernière étape, plus complexe, va interroger le serveur distant. Pour cela, nous allons faire appel à une autre classe de la bibliothèque PEAR.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
     
    //Rappel : La valeur ci dessous a normalement été initialisée dans la partie 2 du script
    $ls_domaine = 'developpez.com';
     
    //Inscrivez dans ce tableau les serveurs de noms de votre FAI.
    $la_serveur_de_nom=array(
        '212.27.32.5',      //Adresse IP du serveur de noms primaire de mon FAI (Free)
        '212.27.32.176',    //Adresse IP du serveur de noms secondaire de mon FAI (Free)
        '212.27.32.177'     //Adresse IP du serveur de noms tertiaire de mon FAI (Free)
    );
     
    //Appel de la bibliothèque PEAR : Net DNS
    require_once 'Net/DNS.php';
     
    //Les fonctions ne peuvent pas s'appeler de façon statitique cette fois
    //On crée donc une instance de classe Net_DNS_Resolver
    $lo_resolver = new Net_DNS_Resolver();
     
    //Décommentez cette ligne pour afficher le debuggage
    //$lo_resolver->debug=1;
     
    //On précise nos noms de serveurs
    $lo_resolver->nameservers=$la_serveur_de_nom;
     
    //On lance une requête, on précise MX pour identifier un éventuel serveur de mail
    $lo_response = $lo_resolver->query($ls_domaine,'MX');
     
    //on teste la réponse
    if ($lo_response) {
      foreach ($lo_response->answer as $lo_rr) {
        //On affiche le résultat pour l'exemple, mais c'est inutile dans l'aboslu
        $lo_rr->display();
        echo "Nom de serveur de mail $ls_domaine valide";
      }
    } else {
        echo "Nom de serveur de mail $ls_domaine inconnu";
    }
    ?>
    ma question est : comment m'en servir à partir d'un petit formulaire avec un champ mail et un autre champ nom?
    celui-ci par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form action="test_email.php" method="post">
    <input type="text" name="email" value="">
    <input type="submit" value="Valider cet email">
    </form>
    merci

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 424
    Points : 15 794
    Points
    15 794
    Par défaut
    dans le premier bout de code que tu as montré il suffit de récupérer la valeur du formulaire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mail = $_POST['email']
    regarde ces tutoriels pour plus d'informations sur les formulaires :
    http://julp.developpez.com/php/formulaires/
    http://g-rossolini.developpez.com/tu...page_2#LII-B-1

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    il ne manque plus qu'à installer la librairie PEAR.
    en tout cas ça a l'air de fonctionner MERCI

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Re

    j'ai quand même un souci de connexion à la librairie voici le message :
    Warning: main(Mail/RFC822.php): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\.....
    apparemment c'est le dossier MAil qui n'existe pas, mais où le trouver? où le placer? je sèche!
    voici le script pour ceux qui voudront bien me filer un piti coup de main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    <body bgcolor="white">
    <?php
    set_include_path(get_include_path() . ";c:\Program Files\EasyPHP1-8/php\pear");
    ?>
     
    <form action="test_email.php" method="post">
    <input type="submit" value="Valider cet email">
    <input type="text" name="email" value="">
    </form>
     
    <?php
    $mail = $_POST['email'];
     
    require 'PEAR.php'; //Appel de la librairie PEAR  ../../php/pear/PEAR/
    require 'Mail/RFC822.php'; //Appel de la librairie Mail_RFC822
     
    $lo_mail = Mail_RFC822::parseAddressList($mail, NULL, FALSE);
     
    if(PEAR::isError($lo_mail)){
        //$lo_mail est une erreur
        //l'adresse e-mail n'est donc pas valide
        echo $mail.'n\'est pas une adresse e-mail valide';
        die();
    } elseif ($lo_mail[0]->host=='localhost'){
        //le nom de domaine de cette adresse est localhost 
        //dans cet exemple on refuse ce genre de mail !
        echo $mail.'n\'est pas une adresse valide';
        die();
    } else {
        echo $mail.' est une adresse e-mail SYNTAXIQUEMENT valide';
    }
     
    //$lo_mail contient l'adresse e-mail stockée dans un tableau
     
    ?>
     
    </body>
    </html> 
     
     
     
    <?php
     
    /*
    Voici le contenu de $lo_mail
    Array
    (
        [0] => stdClass Object
            (
                [personal] => 
                [comment] => Array
                    (
                    )
    
                [mailbox] => john.doe
                [host] => example.org
            )
    
    )*/
     
    $ls_domaine=$lo_mail[0]->host;
     
    //$ls_domaine contient example.org
     
    ?>
     
     
    <?php
     
    //Rappel : La valeur ci dessous a normalement été initialisée dans la partie 2 du script
    $ls_domaine = 'developpez.com';
     
    //Inscrivez dans ce tableau les serveurs de noms de votre FAI.
    $la_serveur_de_nom=array(
        '212.27.32.5',      //Adresse IP du serveur de noms primaire de mon FAI (Free)
        '212.27.32.176',    //Adresse IP du serveur de noms secondaire de mon FAI (Free)
        '212.27.32.177'     //Adresse IP du serveur de noms tertiaire de mon FAI (Free)
    );
     
    //Appel de la bibliothèque PEAR : Net DNS
    require_once 'Net/DNS.php';
     
    //Les fonctions ne peuvent pas s'appeler de façon statitique cette fois
    //On crée donc une instance de classe Net_DNS_Resolver
    $lo_resolver = new Net_DNS_Resolver();
     
    //Décommentez cette ligne pour afficher le debuggage
    //$lo_resolver->debug=1;
     
    //On précise nos noms de serveurs
    $lo_resolver->nameservers=$la_serveur_de_nom;
     
    //On lance une requête, on précise MX pour identifier un éventuel serveur de mail
    $lo_response = $lo_resolver->query($ls_domaine,'MX');
     
    //on teste la réponse
    if ($lo_response) {
      foreach ($lo_response->answer as $lo_rr) {
        //On affiche le résultat pour l'exemple, mais c'est inutile dans l'aboslu
        $lo_rr->display();
        echo "Nom de serveur de mail $ls_domaine valide";
      }
    } else {
        echo "Nom de serveur de mail $ls_domaine inconnu";
    }
    ?>
     
    <form action="test_email.php" method="post">
    <input type="submit" value="Valider cet email">
    <input type="text" name="email" value="">
    </form>
    merci bien d'avance

Discussions similaires

  1. [RegExp] Vérification d'une adresse e-mail ?
    Par [ZiP] dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 19/12/2011, 16h52
  2. [PHP 5.0] [Mail] Vérification d'une adresse e-mail
    Par hraiwen dans le forum Langage
    Réponses: 2
    Dernier message: 05/04/2009, 16h47
  3. Réponses: 2
    Dernier message: 07/12/2007, 17h20
  4. [Mail] "Cryptage" d'une adresse e-mail
    Par Dark Jukka dans le forum Langage
    Réponses: 3
    Dernier message: 18/06/2007, 20h26
  5. [Mail] Vérification d'appartenance d'un mail
    Par djinko dans le forum Langage
    Réponses: 2
    Dernier message: 05/12/2006, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo