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érification de mot de passe


Sujet :

JavaScript

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut Vérification de mot de passe
    Bonjour à tous,

    Je galère pour trouver un script qui me permette de vérifier 2 champs de mot de passe (sur un formulaire de création de compte client).

    Voici les vérifications que je souhaite faire:
    1) le champs de l'e-mail doit contenir un @
    2) les 2 champs mot de passe doivent contenir au moins 6 caractères
    3) les 2 champs mot de passe doivent être identiques

    Voici mon formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form name="form2" id="form2"/>
    <input name="create_email" type="text" id="create_email" size="45"/>
    <input name="create_password" type="password" id="create_password"/>
    <input name="create_confirm" type="password" id="create_confirm" />
    <input name="create" type="submit" id="create" value="Créez votre compte"/>
    </form>
    Merci d'avance aux âmes charitables ^__^

  2. #2
    Membre actif
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Points : 207
    Points
    207
    Par défaut
    bonsoir,
    regarde du coté masque de saisi,voici un lien utile: http://www.developpez.net/forums/sho...d.php?t=390320
    j'espere que ca va t'aider

  3. #3
    Membre actif
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Points : 207
    Points
    207
    Par défaut
    rebonsoir,
    j'ai essayé un peu avec les masques de saisies et j'ai obtenu ceci (c'est just un 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
    30
    31
    32
    33
     
    <html>
    <head>
    <title>Document sans titre</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body>
    <script type="text/javascript" src="jquery.js"></script>
    <script src="jquery.maskedinput-1.0.js" type="text/javascript"></script>
    <script type="text/javascript">
    $.noConflict( ) 
    jQuery(function($){
       $.mask.addPlaceholder("~","[+-]");
       $("#e_mail").mask("*****@******");
       $("#mot_de_passe").mask("aaaaaa");
       $("#confiramation_Pass").mask("aaaaaa",
       {completed:function(){if (this.val()==document.formulaire.mot_de_passe.value) alert("mot de passe identique");
       						else alert("mot de passe different");   }});   
    });
     
    </script>
    <body>
    <form name="formulaire">
    <table>
    <tr><td>e_mail:</td><td><input id="e_mail" type="text" tabindex="1"/></td></tr>
    <tr><td>Pass</td><td><input name="mot_de_passe" id="mot_de_passe" type="text" tabindex="2"/></td></tr>
    <tr><td>confiramation_Pass</td><td><input id="confiramation_Pass" type="text" tabindex="3"/></td></tr>
    </table>
    </form>
     
    </body>
    </html>
    je trouve bcp d'inconvenient avec ce code, surtout qu'on peut pas prevoir la longueur d'une adresse mail ou bien d'un mot de passe.
    en plus ca doit etre soit numerique soit alphanumerique soit caractere, et ca aussi on peut pas le prevoir.
    si quelqu'un aurait une meilleur idée ca serai sympa.
    a+

    rq: si vous voulez essayer le code, il va falloir importer les fichiers en piéce jointes dans se trouvant dans le lien de mon dernier post.

  4. #4
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    la taile tu la vérifies surement en faisant un lenght

    sinon j'ai une fonction pour vérifier l'adresse mail

    regarde chek Mail
    Plzzz pas de questions par MP.

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup Ranell et LeXo !

    Je vais tester ce soir et vous tiens au parfum ^_^

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Re-salut,

    Voici les scripts que j'ai adapté pour l'instant.
    Je les intègre à l'évènement onsubmit de mon bouton de formulaire mais UN SEUL des scripts s'exécute...

    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
     
    function verifmail() {
       adresse = document.form2.create_email.value;
       var place = adresse.indexOf("@",1);
       var point = adresse.indexOf(".",place+1);
       if ((place > -1)&&(adresse.length >2)&&(point > 1))
            {
          return true;
           }
       else {
          alert('Entrez une adresse e-mail valide SVP !');
           return false;
           }
       }
     
    //-->
     
    function minimum(champ,nbre,form)     
    {         if (champ.length < nbre)         
    {             alert("Your password must contain at least "+6+" caracters !");             
    return false;         }      
    return true;      }
     
    //-->
     
    function tmt_compareField(f1,f2,rule,errorMsg){
    	var myErr = "";
    	if(eval("MM_findObj('"+f1+"').value"+rule+"MM_findObj('"+f2+"').value")){
    		alert(unescape(errorMsg));myErr += 'errorMsg';}
    	document.MM_returnValue = (myErr == "");
    }
    //-->
    Et voici mon évènement onsubmit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onsubmit="return minimum(document.form2.create_confirm.value,6,document.form2);return verifmail();tmt_compareField('create_password','create_confirm','!=','The%20password%20didn%27t%20match');return document.MM_returnValue"
    On ne peut déclarer qu'un seul JS par évènement onsubmit ?

  7. #7
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Si tu utilises un return et que ce return est "true", le formulaire est envoyé.

    Donc dans ton cas, si la fonction mininum retourne "true", le reste du JS n'est pas exécuté.
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    oui par exemple dasn la première des faontiosn au lieu de faire un return true tu lances la seconde ...
    dans ce cas tu n'appelles que la première bien entendu et à ce moment là autant faire le return false avant
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Deja merci ryan et SpaceFrog !

    Alors dans mon cas, comment faire pour concatener mes fonctions en une seule.

    Pouvez-vous me montrer le code pour integrer le 2eme script au 1er ?

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Bonsoir à tous !
    Quelqu'un pour m'aider SVP ^_^

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Re-bonsoir,

    Quelqu'un pour me dire comment concatener ces controles en un script ?

    D'avance merci aux ames charitables :-)

  12. #12
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    moi je ferais

    une fonction dans laquelle j'envoie le formulaire... c bien sur de l'algo

    @ toi de bosser pour transcrire

    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
    function checkForm(document.monFormulaire){
     
    //Test1 sur le mail
    if(......){
    test1=true;
    }else{
    test1=false;
    }
    //Test2 sur les mdp
    if(......){
    test2=true;
    }else{
    test2=false;
    }
    //Test3 sur ce que je veux
    if(......){
    test3=true;
    }else{
    test3=false;
    }
     
    if(test1 && test2 && test3){
    //Tous les tests sont réussis
    return true;
    }else{
    //1 seul test faux et c faux
    return false;
    }
    }
    Plzzz pas de questions par MP.

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Merci Lexo mais comme précisé, je ne connais pas bien la syntaxe JavaScript...

    J'ai récupéré un script sur Internet qui correspond à mes besoins.
    Si un expert JS peut m'aider. Ca serait bien sympa.

    Voici mon formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form name="form2" id="form2"/>
    <input name="create_email" type="text" id="create_email" size="45"/>
    <input name="create_password" type="password" id="create_password"/>
    <input name="create_confirm" type="password" id="create_confirm" />
    <input name="create" type="submit" id="create" value="Créez votre compte"/>
    </form>
    Et voici le script:
    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
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
    function Formulaire(formulaire)
    // constructeur de la classe (en entrée : l'attribut "name" du formulaire à valider)
    {
       // variables membres
       this.form=formulaire; // nom du formulaire
       this.erreurs=new Array(); // tableau des champs contenant des erreurs de saisie
     
       // tableaux des règles de validation appliquées aux champs
       this.regles=new Array();
       this.messages=new Array();
       this.validations=new Array();
       this.params=new Array();
     
       // méthodes
       this.regle=regleChamp;
       this.nettoyer=nettoyerChaine;
       this.valider=validerForm;
       this.liste=listeErreurs;
    }
     
    function regleChamp(champ, type, message, param)
    /* ajoute une règle de validation :
    - "champ" est la valeur de l'attribut "name" du champ
    - "type" est la règle de validation proprement dite
    - "message" est le message d'erreur en cas de validation erronée
    - "param" est un paramètre facultatif, utilisé par ceratines règles */
    {
       this.regles.push(champ);
       this.validations.push(type);
       this.messages.push(message);
       this.params.push(param);
    }
     
    function listeErreurs()
    // retourne la liste des erreurs
    {
       var x, liste="";
     
       // construction de la chaîne
       for(x=0; x<this.erreurs.length; x++) liste+="- "+this.erreurs[x]+"\n";
     
       return liste;
    }
     
     
    function nettoyerChaine(chaine)
    // supprime les espaces en début et fin de chaîne (équivalent à la fonction PHP "trim()")
    {
       regex=new RegExp("(^ +)|( +$)", "g");
       chaine=chaine.replace(regex, "");
     
       return chaine;
    }
     
    function validerForm()
    // valide le formulaire : chaque champ doit vérifier les règles qui lui ont été définies
    {
       var x, regex, msg="";
       eval("var formulaire=document."+this.form+";");
     
       // si aucune règle n'a été définie, la validation est toujours vraie
       if(!this.regles.length) return true;
     
       // on examine chaque champ
       for(x=0; x<this.regles.length; x++)
       {
          // on effectue au préalable un petit nettoyage sur le champ à valider
          eval("formulaire."+this.regles[x]+".value=this.nettoyer(formulaire."+this.regles[x]+".value);");
     
          switch(this.validations[x])
          {
             // le champ doit avoir le même contenu qu'un autre
             case "comparaison":
                eval("if(formulaire."+this.regles[x]+".value!='"+this.params[x]+"') this.erreurs.push(this.messages[x]);");
                break;
     
             /* le champ doit avoir une certaine longueur : c'est le dernier paramètre sous la forme "min,max"
             (0 signifiant pas de minimum ou de maximum) */
             case "longueur":
                eval("var longueur=formulaire."+this.regles[x]+".value.length;");
                if(longueur)
                {
                   var temp=this.params[x].split(",( +)?");
                   mini=parseInt(temp[0]);
                   maxi=parseInt(temp[1]);
     
                   if((mini && longueur<mini) || (maxi && longueur>maxi)) this.erreurs.push(this.messages[x]);
                }
                break;
     
             // le champ (uniquement s'il est rempli) doit vérifier une expression régulière
             case "regex":
                switch(this.params[x])
                {
                   // quelques exemples...
                   case "mail":
                      regex=new RegExp("^[a-z0-9_]([.-]?[a-z0-9_]+)+@[a-z0-9_]([.-]?[a-z0-9_]+)+\.([a-z]{2,4}|[a-z]{6})$", "gi");
                      break;
     
     
                   // par défaut (non vide)
                   default:
                      regex=new RegExp("^.+$", "g");
     
                }
     
                eval('if(formulaire.'+this.regles[x]+'.value!="" && !regex.exec(formulaire.'+this.regles[x]+'.value)) this.erreurs.push(this.messages[x]);');
                break;
     
             case "requis":
             default:
             // le champ doit juste être rempli
                eval('if(formulaire.'+this.regles[x]+'.value=="") this.erreurs.push(this.messages[x]);');
          }
       }
     
       // en cas d'erreur, on affiche les différents messages
       if(this.erreurs.length)
       {
          var msg="Le formulaire comporte des erreurs :\n\n"+this.liste()+"\nVeuillez remplir correctement les champs.";
          alert(msg);
          return false;
       }
     
       // en cas de succès, on envoie le formulaire
       return true;
    }

  14. #14
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    pas testé sérieusement mais est-ce que tu cherches à peu près ça?

    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
    <script type="text/javascript">
     
    function check(f){
     
    	if(!/^[^\s@]{2,30}@[^\s@]{2,20}\.[^\s@]{2,3}$/.test(f["create_email"].value)){
    		alert("adresse mail non valide");
    		f["create_mail"].focus();
    		return false
    	}
    	if(f["create_password"].value.replace(/\s/g,"").length!=6 || !/^\w+$/.test(f["create_password"].value) || f["create_password"].value != f["create_confirm"].value){
    		alert("Mot de passe non valide ou mal confirmé.");
    		f["create_password"].value="";
    		f["create_confirm"].value="";
    		f["create_password"].focus();
    		return false
    	}
    }
     
    </script>
     
    </head>
     
    <body>
     
    <form id="form2" action="" onsubmit="return check(this.elements)" />
    	<div>
    		<input name="create_email" type="text" id="create_email" size="45"/>
    		<input name="create_password" type="password" id="create_password"/>
    		<input name="create_confirm" type="password" id="create_confirm" />
    		<input name="create" type="submit" id="create" value="Créez votre compte"/>
    	</div>	
    </form>

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Merci javatwister, c'est mieux mais ça marche pas à 100%.

    Si je mets une adresse mail sans @, je passe avec nimporte quel mot de passe.
    Je peux même laisser les champs mot de passe vides.

    Par contre quand je saisis un @ dans le champs mail, c'est nickel !
    Les messages d'erreur apparaissent bien :-)

  16. #16
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    bah, c'est juste parce que j'avais pas vu que ton champ mail s'appelait "create_email"...;
    d'où la coquille à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f["create_mail"].focus();

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    javatwister, c'est tout simplement parfait ;-)

    Je t'en dois 1 !!

    Merci infiniment

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

Discussions similaires

  1. service web + vérification de mot de passe
    Par wasper dans le forum VB.NET
    Réponses: 3
    Dernier message: 12/08/2010, 20h15
  2. Vérification de mot de pass multiple.
    Par Sytec373 dans le forum VB.NET
    Réponses: 12
    Dernier message: 02/06/2010, 23h09
  3. [XL-2003] Vérification de mot de passe en Vba
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/06/2009, 10h51
  4. Génération et vérification de mots de passe
    Par 84mickael dans le forum Sécurité
    Réponses: 1
    Dernier message: 15/06/2009, 01h21
  5. Vérification de mot de passe et regex
    Par joseph_p dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 21/03/2006, 11h32

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