[RÉSOLU] Problème de conditions

Petit nouveau ! | 3 Messages

13 juil. 2018, 00:24

Bonjour,

Je suis entrain de créer une page d'incription pour mon site et je me trouve face à un probleme curieux. Lorsque je met un pseudo et que je ne rempli pas les champs concernant les mots de passe et que je clique sur envoyer l'insertion dans la base de données se fait quand même alors que la condition devrait être vraie que " si $pseudo n'est pas vide ET $mdp1 n'est pas vide ET mdp2 n'est pas vide" !

Pouvez vous m'éclairer s'il vous plait ?

Edit: L'origine du problème viens du hashage sha1 de $mdp1 et $mdp2 qui génère un contenu avant que la condition soit vérifier qui du coup prérempli $mdp1 et $mdp2 d'un mot de passe vide mais crypté !

if (isset($_POST['send'])) {
        $pseudo = verifyInput($_POST['user']);
        $mdp1 = sha1($_POST['mdp']);
        $mdp2 = sha1($_POST['mdp2']);

        if(!empty($pseudo) && !empty($mdp1) && !empty($mdp2)) {
           $pseudolength = strlen($pseudo);

            if($pseudolength <= 30){
                $requser = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ?");
                $requser->execute(array($pseudo));
                $userexist = $requser->rowCount();

                if($userexist == 0){
                    if($mdp1 == $mdp2){

                        $sql = "INSERT INTO membres(pseudo, motdepasse )VALUES(?,?)";
                        $query = $bdd->prepare($sql);
                        $param = array($pseudo, $mdp1);
                        $query->execute($param);
                        $query->closeCursor();

                        $error = 'Nouvel utilisateur enregistré !';
                    }
                    else{
                        $error = 'Vos mots de passe ne correspondent pas !';
                    }
                }
                else{
                    $error = 'Pseudo dejà utilisé !';
                }
            }
            else{
                $error = 'Votre pseudo ne doit pas depasser 30 caracteres !';
            }
        }
        else{
            $error = 'Tous les champs sont obligatoire !';
        }
    }