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

JavaScript Discussion :

[AJAX] Verification email avec le DNS


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [AJAX] Verification email avec le DNS
    Bonjour,
    J'ai un formulaire qui contient un champ email et j'aimerais que l'utilisateur soit alerté de la validité ou non de son adresse dès qu'il sera sorti du champ.

    Je me suis renseigné et je crois avoir besoin d'ajax mais j'avoue etre un peu paumé...Je voudrai faire un premier test grâce au expression régulière (ca c'est ok) et un deuxième test grâce aux serveurs DNS. Si quelqu'un a déja fait quelque chose dans le genre? Pourriez vous me mettre sur la voie ? existe t'il des fonctions prédéfinies pour dialoguer avec le serveur DNS et savoir si oui ou non le domaine rentré par l'utilisateur existe?

    Merci d'avance,
    JimEden.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 130
    Points : 127
    Points
    127
    Par défaut
    Salut,
    il existe la fonction en PHP, cependant elle ne marche que sur un serveur Linux.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    j'ai essayé cette fonction php :

    <?php
    function validateEmail($email) {
    if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) ||
    (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ){

    $host = explode('@', $email);
    if(checkdnsrr($host[1].'.', 'MX') ) return true;
    if(checkdnsrr($host[1].'.', 'A') ) return true;
    if(checkdnsrr($host[1].'.', 'CNAME') ) return true;
    }
    return false;
    }
    ?>
    Comment pourrais je faire en AJAX pour pouvoir tester la validité de l'adresse?

    Dès la sortie du champ email j'aimerais q'un filet vert ou rouge entoure l'input correspondant (ca c'est pas un problème mais c'est surtout le fait de vérifier l'adresse sans recharger la page qui m'embete... )

    Merci,
    JimEden.

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Salut,

    Alors à mon avis :

    1. l'utilisateur tape le mail dans le champ input (client)
    L'input correspondant possède la propriété onchange qui appelle une fonction javascript de validation.
    2. Cette fonction déclenche une requête AJAX vers ta page PHP (serveur)
    3. Dans cette page, tu check le mail + renvoie la réponse (serveur)
    Cette réponse peut être un flux XML (le X de AJAX) ou bien plus simplement en JSON, pour n'avoir aucun traitement à faire en javascript.
    4. Analyse de la réponse (client : javascript)
    5. Conséquence (ton truc rouge ou vert)

    Voilà, après pour les requêtes ajax en elles-mêmes, y'a plein d'exemple sur le forum ;-)

    En espérant t'avoir aidé. ++

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Pour la partie 1 c'est bon :


    <input type="text" id="contact_email" name="tab[actualite_contact_email]" size="40" onchange="JavaScript:Verif_mail()" onfocus="this.className='input01on'" onblur="this.className=''" value="<?php print(hef($tab["actualite_contact_email"]));?>"

    Pour la partie n°2 j'ai fini:

    function verif_mail(){

    var texte = document.formulaire.actualite_contact_email.value; // contenu du formulaire
    var xhr; // création de l'instance de l'objet
    if (window.XMLHttpRequest) xhr = new XMLHttpRequest();
    else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP');
    else{
    alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...');
    return;
    }
    xhr.open('POST','../include/verification_mail.php',true); // ouverture de la connexion
    xhr.onreadystatechange = function() // définition de la fonction de traitement
    {
    if (xhr.readyState == 4)
    {
    if(xhr.status == 200) {
    alert ("a");
    var varRetour = xhr.responseText;
    alert (varRetour);
    if(varRetour == "OK"){
    alert ("c");
    document.getElementById('actualite_contact_email').className = 'inputok';
    }else{
    document.getElementById('actualite_contact_email').className = 'inputerreur';
    }
    }else{
    document.formulaire.actualite_contact_email.value="Error code " + xhr.status;
    //traitement des données
    }
    }
    }
    xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded'); // en-tête HTTP
    var data = 'texte='+escape(texte); // formatage de la requête
    xhr.send(data); // envoi de la requête
    }

    C'est a la partie 3 que tout s'effondre...
    Je ne sais pas vraiment quoi mettre dans cette page verification_email.php ??
    J'ai entendu parler du package PEAR pour tester les DNS mais je ne sais pas du tout comment l'utiliser.

    Est ce que quelqu'un saurais comment interroger le DNS via PHP ou la classe PEAR ?

    Merci d'avance et merci a toi frodum, tu m'a bien débloqué.
    Jim Eden.

Discussions similaires

  1. [C#] pb avec l'envoie d'Email avec SMTP
    Par hassanibi dans le forum Windows Forms
    Réponses: 22
    Dernier message: 16/04/2007, 16h22
  2. Pb de verif form avec un champ array []
    Par deloo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/09/2005, 11h33
  3. Envoie d'email avec le TIdSMTP + TGauge
    Par Teufa dans le forum Web & réseau
    Réponses: 5
    Dernier message: 10/08/2005, 14h23
  4. Envoie de EMail avec un formulaire
    Par LibrairieSI dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/02/2005, 14h31
  5. Type pour données de type email avec @
    Par jeff37 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/01/2004, 14h50

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