2009-10-26 15 views
5

Nouveau à tout cela donc pardonnez mon ignorance. J'essaie de comprendre comment ajouter un champ «confirmer votre mot de passe» à mon formulaire. En utilisant PHP et mySQL. Est-ce entré dans le code du formulaire html, et comment pouvez-vous le configurer pour vérifier automatiquement que le mot de passe et confirmer les champs de mot de passe correspondent.Confirmer le mot de passe?

+2

Comment est-ce lié à MySQL? Voulez-vous stocker les deux champs de mot de passe dans la base de données et avez-vous une contrainte pour vous assurer qu'ils correspondent? Si c'est le cas, ce ne serait pas le meilleur moyen d'imposer cette contrainte dans l'interface utilisateur ... – dcrosta

Répondre

16

juste obtenir à la fois le mot de passe et confirmer les champs de mot de passe dans le formulaire et soumettre PHP test pour l'égalité:

if ($_POST["password"] === $_POST["confirm_password"]) { 
    // success! 
} 
else { 
    // failed :(
} 

password et confirm_password sont les ID des entrées de texte HTML pour les mots de passe.

1

Utilisez-vous une sorte de cadre? Si ce n'est pas le cas, il devrait être aussi simple que de vérifier après l'enregistrement que les deux champs sont définis et que $ confirmationPassword == $ passWord. Ensuite, appliquez la validation dont vous avez besoin au mot de passe avant de le stocker dans SQL.

4

Ce que vous essayez de faire est la validation de formulaire. C'est une bonne idée de valider du côté client (en utilisant javascript) afin que vous ayez une réponse plus rapide pour votre utilisateur sur l'interface et sur votre serveur (puisque votre utilisateur peut désactiver javascript - et parce que vous devriez ne jamais faire confiance aveuglément dans l'entrée de l'utilisateur, lisez Should you do validation on your server side pour plus d'informations à ce sujet).

Vous avez juste besoin de comparer les deux valeurs affichées. Si c'est correct, insérez dans la base de données. Sinon, ne faites rien et renvoie un message à l'utilisateur en lui disant que le mot de passe est incorrect.

Je ne peux pas donner plus de détails puisque vous n'avez pas fourni suffisamment d'informations détaillées sur votre environnement php (frameworks utilisés, libs utilisés, etc).

+1

"et sur le serveur (puisque votre utilisateur peut désactiver javascript)." - Ce n'est pas une raison pour utiliser la validation côté serveur. – strager

+2

Euh, oui c'est le cas. La validation côté client est utile, mais la validation côté serveur garantit que les problèmes côté client sont pris en compte. – ceejayoz

+1

En supposant quelque chose comme "Pourquoi ne puis-je pas écrire une validation javasctip?", Je viens d'écrire pour valider du coté du serveur pour se souvenir qu'il a besoin de le faire. Je ne peux pas fournir toutes les informations sur la sécurité dans une réponse simple. – GmonC

2

vous pouvez le vérifier en utilisant JavaScript

<html><title></title><head> 
<script> 
     function validate(){ 

    if(!document.getElementById("password").value==document.getElementById("confirm_password").value)alert("Passwords do no match"); 
    return document.getElementById("password").value==document.getElementById("confirm_password").value; 
    return false; 
    } 
    </script> 
</head> 
<body> 
    <form onSubmit="return validate()" action="nextPage.php"> 
    Password: <input type="text" id="password" name="password" /><br/> 
    Reenter Password: <input type="text" id="confirm_password" name="confirm_password" /> 
    <input type="submit" value="submit"/> 
    </form> 
</body> 
</html> 

Et sur le côté sever vous devez vérifier à nouveau dans le client de cas ne supporte pas Javascript,

if($_GET['password']==$_GET['confirm_password']) 

Vous devez utiliser $ _POST au lieu de $ _GET dans le cas de la méthode POST

+0

Souhaitez-vous utiliser un GET en ce qui concerne un mot de passe? On dirait qu'un POST serait le chemin à parcourir ... – Dscoduc

+0

vous avez raison pour les mots de passe, nous devons utiliser la méthode POST ..J'ai juste donné un exemple, juste la soumission de formulaire de base en utilisant les deux méthodes avec validation :) – Xinus

2

J'ai mis à jour le code, il manque des deux points sur le formulaire.

<html> 
    <title></title> 
    <head> 
    <script> 
     function validate(){ 

      var a = document.getElementById("password").value; 
      var b = document.getElementById("confirm_password").value; 
      if (a!=b) { 
       alert("Passwords do no match"); 
       return false; 
      } 
     } 
    </script> 
    </head> 
    <body> 
     <form onSubmit="return validate();" "> 
     Password: <input type="text" id="password" name="password" /><br/> 
     Re-enter Password: <input type="text" id="confirm_password" name="confirm_password" /> 
     <input type="submit" value="submit"/> 
     </form> 
    </body> 
</html> 
Questions connexes