Probleme formulaire d'inscription (password)

Suivre ce topic
Ce topic est suivi par : mania
Ce topic a été résolu
mania

mania Le 27 janvier 2018 à 01:23 (Édité le 25 janvier 2019 à 17:54)

Salut !
Comme la plupart des gens ici je débute dans le php et en ce moment j'essaye donc de faire un formulaire d'inscription. Mais j'ai un petit soucis. En fait j'aimerais juste que l'utilisateur mette au moins 8 caractères dans son mot de passe pour valider l'inscription. J'ai déjà testé plusieurs façon via des vidéos sur youtube ou encore des exemples de formulaire d'inscription, mais ca ne veut pas fonctionner. J'avais une piste un moment, ca me faisait bien l'erreur comme quoi le mot de passe ne contenait pas au moins 8 caractères mais ca inscrivait quand même l'utilisateur dans ma bdd.

Du coup voilà ca fait bien 2-3 jours que j'essayes de trouver une solution alors c'est pour ça que je me tournes vers le forum pour avoir de l'aide, s'il vous plait. :)

Voici à quoi ressemble mon code : 
<?php
session_start();
$bdd = new PDO('mysql:host=127.0.0.1;dbname=bddlocalhost', 'root', '');
if(isset($_POST['forminscription'])) {
    $pseudo = htmlspecialchars($_POST['pseudo']);
    $mail = htmlspecialchars($_POST['mail']);
    $mail2 = htmlspecialchars($_POST['mail2']);
    $password = sha1($_POST['password']);
    $password2 = sha1($_POST['password2']);
    if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['password']) AND !empty($_POST['password2'])) {
      if($mail == $mail2) {
      if(filter_var($mail, FILTER_VALIDATE_EMAIL)) {
         $reqmail = $bdd->prepare("SELECT * FROM members WHERE mail = ?");
         $reqmail->execute(array($mail));
         $mailexist = $reqmail->rowCount();
         if($mailexist == 0) {
            if($password == $password2) {
               if(strlen($password) >= 8) {
                  $insertmbr = $bdd->prepare("INSERT INTO members(pseudo, mail, password, avatar) VALUES(?, ?, ?, ?)");
                  $insertmbr->execute(array($pseudo, $mail, $password, "default.png"));
                  $msg = "Votre compte a bien été créé ! <a href=\"login.php\">Me connecter</a>";
               } else {
                  $erreur = "Votre password contient moins de 8 caractères.";
               }
            } else {
               $erreur = "Les mots de passe ne correspondent pas.";
            }
         } else {
            $erreur = "Adresse e-mail déjà utilisée.";
         }
      } else {
         $erreur = "Entrez une adresse e-mail valide.";
      }
      } else {
         $erreur = "Les adresses e-mail ne correspondent pas.";
      }
    } else {
      $erreur = "Tous les champs doivent être complétés.";
    }
}
?>
u
Profil introuvable

Profil introuvable Le 27 janvier 2018 à 04:09 (Édité le 27 janvier 2018 à 04:10)

salut, en fait ton password sera toujours sup a 8, parce que tu fais un sha1 avant...

if ($_POST['pass'] === $_POST['pass_confirm']):
   if (strlen($_POST['pass'] >= 8):
      $pass = sha1($_POST['pass']);
   endif;
endif;
je serais toi, je n'utiliserais pas sha1 pour hasher mes passwords, utilise plutôt password_hash()
mania

mania Le 27 janvier 2018 à 14:23

Salut et merci de ta réponse, je vais essayer de voir ce que je peux faire avec ça 😀
mania

mania Le 27 janvier 2018 à 15:34

Ca ne marche toujours pas... :( si quelqu'un pouvait m’éclairer, je lui serais très reconnaissant
Profil introuvable

Profil introuvable Le 27 janvier 2018 à 17:53

<?php
session_start();
$bdd = new PDO('mysql:host=127.0.0.1;dbname=bddlocalhost', 'root', '');
if(isset($_POST['forminscription'])) {    
   $pseudo = htmlspecialchars($_POST['pseudo']);    
   $mail = htmlspecialchars($_POST['mail']);    
   $mail2 = htmlspecialchars($_POST['mail2']);    
   $password = $_POST['password'];    
   $password2 = $_POST['password2'];
   if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['password']) AND !empty($_POST['password2'])) {
      if($mail == $mail2) {
         if(filter_var($mail, FILTER_VALIDATE_EMAIL)) {
            $reqmail = $bdd->prepare("SELECT * FROM members WHERE mail = ?");
            $reqmail->execute(array($mail));
            $mailexist = $reqmail->rowCount();
            if($mailexist == 0) {
               if($password == $password2) {
                  if(strlen($password) >= 8) {
                     $password = sha1($password);
                     $insertmbr = $bdd->prepare("INSERT INTO members(pseudo, mail, password, avatar) VALUES(?, ?, ?, ?)");
                     $insertmbr->execute(array($pseudo, $mail, $password, "default.png"));
                     $msg = "Votre compte a bien été créé ! <a href=\"login.php\">Me connecter</a>";
                     } else {
                        $erreur = "Votre password contient moins de 8 caractères.";
                        }
                  } else {$erreur = "Les mots de passe ne correspondent pas.";}
               } else {$erreur = "Adresse e-mail déjà utilisée.";}
            } else {$erreur = "Entrez une adresse e-mail valide.";}
         } else {$erreur = "Les adresses e-mail ne correspondent pas.";}
    } else {$erreur = "Tous les champs doivent être complétés.";    }
}
?>
mania

mania Le 27 janvier 2018 à 18:33

T'es un génie Bernard-ng Merci beaucoup !
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte