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 :

Vérifier si un login est disponible


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut Vérifier si un login est disponible
    Bonjour,

    je cherhce donc a faire une recherche sur une base de donnée pour vérifier si un login est disponible ou non.

    Voici comment je procede :

    le code html
    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
     
    <div id="conteneur">
     
    <!-- ****************************** etape 1 ****************************** -->
    <div id="etape1" class="etape" style="left:0px;">
    <form action="" method="post" name="registerForm">
    <table width="602" border="0" cellspacing="8" cellpadding="0">
      <tr>
        <td width="109" height="20" class="inscription">Votre login :</td>
        <td width="109" height="20"><input id="loginrules" onkeyup="ins_verification('login','log_valid','log_ok')" type="text" name="login_ins" size="15" maxlength="20" class="input_text" /></td>
        <td width="172" height="20" class="ins_valid" id="log_valid" style="display:">4 à 20 caractères, lettres et chiffres sans espace</td>
        <td width="172" height="20" class="ins_ok" id="log_ok" style="display:none">Ok</td>
      </tr>
      <tr>
        <td height="20" class="inscription">Votre mot de passe :</td>
        <td height="20"><input id="mdprules" onkeyup="ins_verification('mdp','pass_valid','pass_ok')" type="password" name="mdp_ins" size="15" maxlength="40" class="input_text" /></td>
        <td height="20" class="ins_valid" id="pass_valid" style="display:">4 à 40 caractères, différent du login</td>
        <td height="20" class="ins_ok" id="pass_ok" style="display:none">Ok</td>
      </tr>
      <tr>
        <td height="20" class="inscription">Votre adresse email :</td>
        <td height="20"><input type="text" id="mailrules" onkeyup="mail_verification('mail_valid','mail_ok')" name="mail_ins" size="20" class="input_text" maxlength="100" /></td>
        <td height="20" class="ins_valid" id="mail_valid" style="display:">Votre email doit être valide</td>
        <td height="20" class="ins_ok" id="mail_ok" style="display:none">Ok</td>
      </tr>
      <tr>
        <td height="20" colspan="3" align="center"><input onclick="etape1valider()" type="button" class="boutton" value="Passer à l'étape suivante" /></td>
        </tr>
    </table>
    </form>
     
    </div>
    Seul le premeir input nous interresse .

    Voici le code javascript :
    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
     
    function ins_verification(rules,valid,ok) {
     
    if (rules == 'login') {
    var login = document.forms.registerForm.loginrules.value;
    } else if(rules == 'mdp') {
    var login = document.forms.registerForm.mdprules.value;
    }
     
    td = document.getElementById(valid);
    tdok = document.getElementById(ok);
     
     
    if(login.length < 4) {
    	tdok.style.display = 'none';
    	td.style.display = '';
    	td.className = 'ins_warn';
    	}
    else if ((rules == 'mdp') && (login == document.forms.registerForm.loginrules.value)) {
    	tdok.style.display = 'none';
    	td.style.display = '';
    	td.className = 'ins_warn';
    	}
    else if ((rules == 'login') && (file('verif_ins.php?log_base='+escape (login)) == true )) {
    	alert("marche");
    	}
    else if (login.length > 3) {
    	td.style.display = 'none';
    	tdok.style.display = '';
    	return true;
    	}
    else if (login.length == 0) {
    	tdok.style.display = 'none';
    	td.style.display = '';
    	td.className = 'ins_valid';
    	}
    }
    et enfin le code php qui va chercher ma réponse dans la base de donnée :
    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
     
    <?php
     
    if (isset($_GET['log_base'])) {
     
    $login = $_GET['log_base'];
     
    $connexion = mysql_connect("127.0.0.1","root","") or die ("probleme de connexion a la base de donnée".mysql_error());
     
    $select_db = mysql_select_db("projet");
     
    $rq = mysql_query("SELECT loginuser FROM  `compte` WHERE loginuser = '$login'");
    $rq2 = mysql_query("SELECT loginuser FROM  `attentevalidation` WHERE loginuser = '$login'");
     
    if (mysql_num_rows($rq) == 0 && mysql_num_rows($rq) == 0) {
    return true;
    }
    else {
    return false;
    }
     
    }
     
    ?>
    le fichier php a l'air de fonctionner,


    c'est a ce niveau que ca coince ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    else if (
    // défini si on vérifie le login ou le mot de passe
    (rules == 'login')
     && 
    // vérifie la disponibilité du login (la que je bloque)
    (file('verif_ins.php?log_base='+escape (login)) == true )) {
    // si ca marche, je fait une alert.
    	alert("marche");
    	}
    merci.

    Lien : http://mimagyc.ovh.org/projet/

  2. #2
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Salut,

    En mettant en commentaire ce morceau de code peut etre que ? :

    else if (login.length > 3) {
    td.style.display = 'none';
    tdok.style.display = '';
    return true;
    }

    car j'ai comme l'impression qu'il y ai deux condition vrai à ce stade. Ton test de login et ce morceau de code.

  3. #3
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut
    Oui je vois .. il peut il y avoir deux bonne réponse en fait ..

    Comment procéder ....?

    Merci.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Points : 73
    Points
    73
    Par défaut
    Tu peux utiliser une XMLHttpRequest :

    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
     
    function verifier_pseudo(pseudo)
    {
    var pseudo = document.form.champ.value;
     
    var req = new XMLHttpRequest;
     
    var url = "verification.php?pseudo="+pseudo;
     
    asynchrome_ou_pas = true;
     
    req.open("GET",url,asynchrome_ou_pas); //paramétrage de la xmlhttprequest
     
    req.onreadystatechange = function { var source_recuperee = req.reponseText; }
     
    req.send(null); //null car on utilise la methode get 
    }
    En appelant cette fonction , la variable source_recuperee contient la source que la page php utilisée a généré (attention , cela ne marche que si c'est ton site , si tu veux faire une xmlhttprequest vers un autre site tu ne peux pas) , et ainsi afficher ce que tu veux.

  5. #5
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut
    Merci pour vos réponse.

    Je vais vraiment paraitre bête ...

    mais pourrais tu détaillé un peu plus ton code ? enfin le commenter un chouilla plus .. je ne comprends pas plus la

    merci encore !

  6. #6
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut
    Voila ou j'en suis pour l'instant ...

    Code html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input id="loginrules" onkeyup="verification_login()" type="text" name="login_ins" size="15" maxlength="20" class="input_text" />
    le code javascript
    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
     
    function file(fichier)
         {
         if(window.XMLHttpRequest) // FIREFOX
              xhr_object = new XMLHttpRequest();
         else if(window.ActiveXObject) // IE
              xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
         else
              return(false);
         xhr_object.open("GET", fichier, false);
         xhr_object.send(null);
         if(xhr_object.readyState == 4) return(xhr_object.responseText);
         else return(false);
         }
     
     
     
    function verification_login() {
    	var login = document.forms.registerForm.loginrules.value;
     
    	if (text == file('verif_ins.php?log_base='+escape(login))) {
    	if (text == 1) {
    		return true;
    	alert("marche1");
    	} else {
    	return false;
    	alert("marche2");
    	}
    	}
    }
    et le code verif_ins.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
     
    <?php
     
    if (isset($_GET['log_base'])) {
     
    $login = $_GET['log_base'];
     
    $connexion = mysql_connect("127.0.0.1","root","") or die ("probleme de connexion a la base de donnée".mysql_error());
     
    $select_db = mysql_select_db("projet");
     
    $rq = mysql_query("SELECT loginuser FROM  `compte` WHERE loginuser = '$login'");
    $rq2 = mysql_query("SELECT loginuser FROM  `attentevalidation` WHERE loginuser = '$login'");
     
    if (mysql_num_rows($rq) == 0 && mysql_num_rows($rq) == 0) {
    echo "1";
    }
    else {
    echo "2";
    }
     
    }
     
    ?>
    Meme ca ... ca ne marche pas ...

  7. #7
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut
    j'ai donc finalement réussi ... pour le login ... mais pas moyen de le refaire pour le mail ^^... enfin je vai me pencher la dessus.

    je revienderai ici ci je n'y arrive pas ...

    Merci

  8. #8
    Membre habitué Avatar de mimagyc
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 151
    Points
    151
    Par défaut
    J'ai un nouveau souci .. désolé ^^

    j'arrive donc a vérifier si le mail est vélide ou non et si il existe déjà ou non, mais il ne veut plus passer a la div suivante...

    voici le code html :
    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
     
    <div id="etape1" class="etape" style="left:0px;">
    <form action="" method="post" name="registerForm">
    <table width="602" border="0" cellspacing="8" cellpadding="0">
       <tr>
        <td width="109" height="20" class="inscription">Votre login :</td>
        <td width="109" height="20"><input id="loginrules" onkeyup="ins_verification('login','log_valid','log_ok')" type="text" name="login_ins" size="15" maxlength="20" class="input_text" /></td>
        <td width="172" height="20" class="ins_valid" id="log_valid" style="display:">4 à 20 caractères, lettres et chiffres sans espace</td>
        <td width="172" height="20" class="ins_ok" id="log_ok" style="display:none">Ok</td>
        <td width="172" height="20" class="ins_warn" id="log_indisponible" style="display:none">Ce login éxiste déjà</td>
      </tr>
      <tr>
        <td height="20" class="inscription">Votre mot de passe :</td>
        <td height="20"><input id="mdprules" onkeyup="ins_verification('mdp','pass_valid','pass_ok')" type="password" name="mdp_ins" size="15" maxlength="40" class="input_text" /></td>
        <td height="20" class="ins_valid" id="pass_valid" style="display:">4 à 40 caractères, différent du login</td>
        <td height="20" class="ins_ok" id="pass_ok" style="display:none">Ok</td>
      </tr>
      <tr>
        <td height="20" class="inscription">Votre adresse email :</td>
        <td height="20"><input type="text" id="mailrules" onkeyup="mail_verification('mail_valid','mail_ok','mail_indisponible')" name="mail_ins" size="20" class="input_text" maxlength="100" /></td>
        <td height="20" class="ins_valid" id="mail_valid" style="display:">Votre email doit être valide</td>
        <td height="20" class="ins_ok" id="mail_ok" style="display:none">Ok</td>
        <td height="20" class="ins_warn" id="mail_indisponible" style="display:none">Votre mail est déjà utiisé</td>
      </tr>
      <tr>
        <td height="20" colspan="3" align="center"><input onclick="etape1valider()" type="button" class="boutton" value="Passer à l'étape suivante" /></td>
        </tr>
    </table>
    </form>
     
    </div>
    code javascript
    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
     
    function file(fichier)
         {
         if(window.XMLHttpRequest) // FIREFOX
              xhr_object = new XMLHttpRequest();
         else if(window.ActiveXObject) // IE
              xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
         else
              return(false);
         xhr_object.open("GET", fichier, false);
         xhr_object.send(null);
         if(xhr_object.readyState == 4) return(xhr_object.responseText);
         else return(false);
         }
     
     
     
    function disponibilite_login() {
    	var login = document.forms.registerForm.loginrules.value;
    	if (text = file('verif_ins.php?log_base='+escape(login))) {
    	if (text == 1 ) { return true; } else { return false; }
    	}
    }
    function disponibilite_mail() {
    	var mail = document.forms.registerForm.mailrules.value;
    	if (text = file('verif_ins.php?mail_base='+escape(mail))) {
    	if (text == 1 ) { return true; } else { return false; }
    	}
    }
     
     
     
    function mail_verification(valid,ok,dispo) {
     
    td = document.getElementById(valid);
    tdok = document.getElementById(ok);
    tddis = document.getElementById(dispo);
     
    var mail = document.forms.registerForm.mailrules.value;
     
     
    if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) {
     
    	if (disponibilite_mail() == true) {
    	td.style.display = 'none';
    	//tddis.style.display = 'none';
    	tdok.style.display = '';
    	return true;
    	} else
    	{
    	td.style.display = 'none';
    	tdok.style.display = 'none';
    	tddis.style.display = '';
    	return false;
    	}
     
    	}
    else if ((mail.indexOf("@")<=0)&&(mail.indexOf(".")<=0)) {
    	td.style.display = '';
    	tdok.style.display = 'none';
    	td.className = 'ins_warn';
    	tddis.style.display = 'none';
    	return false;
    	}
     
     
    }
    donc sur cette partie du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            if (disponibilite_mail() == true) {
    	td.style.display = 'none';
    	//tddis.style.display = 'none';
    	tdok.style.display = '';
    	return true;
    Si j'enlever le //, ca ne renvoie pas true ...
    enfin j'en suis pas sur, mais ca ne fonctionne pas sans les //...
    si quelqu'un aime déchiffre mon code ... xD

    merci.

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

Discussions similaires

  1. Comment vérifier qu'un PC est disponible sur le reseau?
    Par Jayceblaster dans le forum Framework .NET
    Réponses: 2
    Dernier message: 03/07/2007, 14h36
  2. Vérifier si une extension est disponible
    Par Amnesiak dans le forum Langage
    Réponses: 3
    Dernier message: 27/06/2007, 14h02
  3. DevC++ avec un nouveau MinGW est disponible
    Par HRS dans le forum Dev-C++
    Réponses: 1
    Dernier message: 28/02/2005, 13h37
  4. Réponses: 6
    Dernier message: 06/12/2004, 22h18
  5. Vérifier si une form est ouverte
    Par nivet dans le forum Langage
    Réponses: 6
    Dernier message: 23/11/2004, 09h17

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