Mots de passe php

roland999 Messages postés 35 Statut Membre -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
salut voici mon code php
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
 // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
 if ((isset($_POST['nom']) && !empty($_POST['nom'])) && (isset($_POST['prenoms']) && !empty($_POST['prenoms'])) && (isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
 // on teste les deux mots de passe
 if ($_POST['pass'] != $_POST['pass_confirm']) {
  $erreur = htmlentities('Les 2 mots de passe sont différents.');
 }
 else {
  $base = mysql_connect ('localhost', 'root', '');
  mysql_select_db ('gestiondecheque', $base);

  // on recherche si ce login est déjà utilisé par un autre membre
  $sql = 'SELECT count(*) FROM utilisateur WHERE login="'.mysql_real_escape_string($_POST['login']).'"';
  $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  $data = mysql_fetch_array($req);

  if ($data[0] == 0) {
  $sql = 'INSERT INTO utilisateur VALUES("","'.$_POST['nom'].'","'.$_POST['prenoms'].'","'.mysql_real_escape_string($_POST['login']).'", "'.mysql_real_escape_string(md5($_POST['pass'])).'")';
  mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

  session_start();
  $_SESSION['login'] = $_POST['login'];
  header('Location: index.php');
  exit();
  }
  else {
  $erreur = htmlentities('Un membre possède déjà ce login.');
  }
 }
 }
 else {
 $erreur = htmlentities('Vous avez oublié de remplir tout les champs.');
 }
}
?>


et je veux ajouter qu'il faut un minimum de 6 caractere pour que le mots de passe soit valider aider moi

2 réponses

  1. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
     
    Salut,

    si tu veux avoir de l'aide, il vaudrait mieux que tu penses à utiliser les balises de code qui vont rendre ton code plus lisible...

    Mis à part ça, quel est le soucis ? La fonction strlen compte le nombre de caractère d'une chaine, c'est une des premières fonctions qu'on apprend quand on débute le php.
    0
  2. roland999 Messages postés 35 Statut Membre
     
    oui je le sais mais comment l integrer a mon code c'est ce que je demande
    0
    1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      Es-tu sûr que c'est "ton code" pour poser une question pareille.

      Tu crées une nouvelle condition à l'exécution de ton code présent dans les accolades internes qui traitent les données validées.

      Un
      if (strlen($_POST['pass']) > 5)
      devrait suffire.

      Autrement, tu peux pousser un peu plus la validation, tu pourrais vérifier que le mot de passe comporte :

      - de 6 à 25 caractères (ou une autre limite)
      - une lettre minuscule au moins
      - une lettre majuscule au moins
      - un chiffre au moins

      Tu peux alors faire comme cela :

      // code en lignes 1 à 10
      if (preg_match(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,25}$/, $_POST['pass'])) {
      // code en lignes 11 à 30
      } else {
         $erreur = htmlentities('Le mot de passe doit comporter de 5 à 25 caractères, au moins une majuscule et une minuscule, et au moins un chiffre.');
      }
      // code en lignes 31 à 37


      Si cela ne te plait pas met ton strlen à la place du preg_match.


      Dal
      0