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] Validation des adresses e-mail


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 228
    Points : 101
    Points
    101
    Par défaut [Mail] Validation des adresses e-mail
    Bonjour a tous,

    Je suis en train de faire mon fichier php de vérification de champs et d'envoi de mail.

    Cependant je me retrouve confronter a deux erreurs.

    Notice: Undefined variable: MailBody in d:\www\fansyl.fr\htdocs\inscription\verif.php on line 59

    Fatal error: Call to undefined function checkdnsrr() in d:\www\fansyl.fr\htdocs\inscription\verif.php on line 19

    Comment puis je enlever ces deux erreurs svp.

    Voici mon code php du fichier verif.php.

    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
     
    <?
    // DEBUT Fonction de contrôle du mail PHP-UNIX
    function check_mail($champ3) {
    if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $champ3)) ||
    (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$champ3)) ) {
    $host = explode('@', $champ3);
    if(checkdnsrr($host[1].'.', 'MX') ) return true;
    if(checkdnsrr($host[1].'.', 'A') ) return true;
    if(checkdnsrr($host[1].'.', 'CNAME') ) return true;
    }
    return false;
    }
    // FIN Fonction de contrôle du mail
    $MailTo = "orphen06100@hotmail.fr"; //adresse à laquelle sera envoyé le contenu du formulaire
    $MailCc = "kirby_sensi@hotmail.com"; // adresse à laquelle sera envoyé un communiqué
    $MailSubject = "Inscription d'un nouveau membre"; //texte qui va figurer dans le champ "sujet" du email
    $MailHeader = "$champ3"; //adresse email qui va figurer dans le champ "expéditeur" du email et qui peut être remplacé par la variable "$champx" ("$champ3").
    // Quelques hébergeurs obligent que le domaine du mail de l'expéditeur soit celui de votre site
     
    $min_size="3"; // Longueur minimum du message
    $max_size="5000"; //Longueur maximum du message
     
    /* Les routines suivantes permettent à chacune des variables de prendre la valeur des champs du formulaire et de les stocker ensuite dans la variable globale MailBody qui constituera le corps du message */
     
    $Envoi = 1; //initialisation de la variable envoi à 1
     
    /* Pour enlever une condition de vérification de champ (vide ou non), enlever, par exemple au champ 1 :
    *
    if ($champ1 == ""){ //nom du champ1
    echo("Vous n'avez pas complété le champ 1.<br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
    $Envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0
    }
    else {
    }
    
    et ne laisser que :
    
    $MailBody .= "Question 1 : $champ1\n";
    
    */
    //
    if ($champ1 == ""){ //nom du champ1
    echo("Vous n'avez pas renseignez le champs pseudo.<br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
    $Envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0
    }
    else {
    $MailBody .= "Pseudo du nouveau membre : $champ1\n"; //si le champ1 contient de l'information, elle est stockée dans la variable MailBody
    }
    if ($champ2 == ""){
    echo("Vous n'avez pas renseignez le champs Mot de passe.<br>");
    $Envoi = 0;
    }
    else {
    $MailBody .= "Mot de passe : $champ2\n";
    }
    if ($champ3 == ""){
    echo("Vous n'avez pas renseignez le champs Email<br>");
    $Envoi = 0;
    }
    else {
    if (check_mail($champ3)) {
    $MailBody .= "Mail : $champ3\n";
    }
    else {
    echo("L'adresse e-mail n'est pas valide<br>");
    $Envoi = 0;
    }
    }
    if ($Envoi == 0) { //vérification que la variable envoi est bien à 1
    echo("<p><a href=\"Javascript:history.go(-1)\"><center><strong>RETOUR</strong></center></a></p>");
    //Pas d'envoi du message et retour au formulaire
    }
     
    //Envoi du message
    if ($Envoi == 1) { //vérification que la variable envoi est bien à 1
    echo("<p><strong>Votre pseudo : <font color=\"#0000FF\">$champ1</font>\n");
    echo("<br>Votre Mot de pass : <font color=\"#0000FF\">$champ2</font>\n");
    echo("<br>Votre E-mail : <font color=\"#0000FF\">$champ3</font>\n");
    mail($MailTo, $MailSubject, $MailBody, $MailHeader); //envoi du message
    //mail($MailCc, $MailSubject, $MailBody, $MailHeader); //envoi du communiqué (enlever // pour le rendre opérationnel
    echo("<p>Votre Inscription a bien ete prise en compte.");
    echo("<p>&nbsp;</p><p>&nbsp;</p><p align=\"center\"><a href=\"index.php\">Retour</strong></a></p>"); //affichage d'un message de confirmation.
    }
    ?>
    merci par avance pour vos réponses

    www.fansyl.fr ---onglet devenir membre du site

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Avez-vous lu la documentation de la fonction checkdnsrr ?
    Citation Envoyé par http://fr.php.net/checkdnsrr
    Note: Cette fonction n'est pas disponible sur les machines Windows. Pour la remplacer, essayez la classe » PEAR : » Net_DNS
    Concernant la variable indéfinie $MailBody, vous n'avez qu'à l'initialiser en début de script ($MailBody = '';), ça devrait régler ce notice.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Mail] Vérifier des adresses email
    Par calitom dans le forum Langage
    Réponses: 6
    Dernier message: 02/06/2008, 14h32
  2. [Mail] Validation d'adresses mail
    Par kev484 dans le forum Langage
    Réponses: 1
    Dernier message: 17/01/2008, 20h44
  3. comment supprimer des adresses e-mail?
    Par eleanario55 dans le forum Dépannage et Assistance
    Réponses: 3
    Dernier message: 08/09/2006, 16h13
  4. [Mail] Réécriture des adresses des pages.
    Par yanice dans le forum Langage
    Réponses: 5
    Dernier message: 26/05/2006, 10h08

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