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

PHP & Base de données Discussion :

Acces membres: code non verifier [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut Acces membres: code non verifier
    Bonjour

    Je ne comprend pas pourquoi mon code laisse passer sans contrôler les mots de passes.
    ci-dessous mon code:
    <?php
    require'connection.php';
    $mdp = $_POST['mdp'];
    $qrz = $_POST['nom'];

    $req = $db->prepare('SELECT QRZ, mdp FROM membres WHERE QRZ = :QRZ');
    $req->execute(array(
    'QRZ' => $qrz));
    $resultat = $req->fetch();

    $isPasswordCorrect = password_verify($_POST['mdp'], $resultat['mdp']);

    if (!$resultat)
    {
    // echo 'Mauvais identifiant ou mot de passe !';
    // header("location: inscription.php");
    }
    else
    {
    session_start();
    $_SESSION['QRZ'] = $resultat['QRZ'];
    //header("location: menu.php");
    // echo "Bon";
    }
    ?>
    Ou est l'erreur ?

    Merci de votre aide

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Et avec

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req->execute(array(':QRZ' => $qrz));

    ?
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Membre averti Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 164
    Points : 377
    Points
    377
    Par défaut
    Bonjour,

    La fonction password_verify() renvoie TRUE si le mot de passe et correct, sinon renvoie FALSE.
    Dans ton script tu n'utilise pas le retour de cette fonction.

    Essaye quelques chose comme ç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
    33
    34
    <?php
    /* Récupération des données du formulaire. */
    $nom = filter_input(INPUT_POST, 'nom');
    $mdp = filter_input(INPUT_POST, 'mdp');
     
    /* Si aucune données est envoyées à la validation, renvoie à la page d'inscription. */
    if (empty($nom) || empty($mdp)){
        // header("location: inscription.php");
    }
     
    require 'connection.php';
     
    $req = $db->prepare('SELECT QRZ, mdp FROM membres WHERE QRZ = :QRZ');
    $req->execute([
        ':QRZ' => $nom
    ]);
     
    $resultat = $req->fetch();
    /* Vérifie l'existance d'un utilisateur en base de données. */
    if (!$resultat) {
        echo 'Mauvais identifiant ou mot de passe !';
        // header("location: inscription.php");
    }
     
    /* Vérifie si le mot de passe est correct. */
    if(password_verify($mdp, $resultat['mdp'])) {
        echo 'Mauvais identifiant ou mot de passe !';
        // header("location: inscription.php");
    } else {
        session_start();
        $_SESSION['QRZ'] = $resultat['QRZ'];
        // header("location: menu.php");
        // echo "Bon";
    }
    Mon projet CMS https://soosyze.com/
    Son repo github https://github.com/soosyze/soosyze

    Open source tools and free yes, but with elegance .

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut
    Salut

    Oui je planche depuis tout a l'heure et je me suis aperçu du de mon problème.

    Il me manquait la dernière partie celle qui vérifie le mot de passe.

    Merci tout de même.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/10/2005, 16h13
  2. Probléme de code non portable
    Par Stany dans le forum Windows
    Réponses: 2
    Dernier message: 23/08/2005, 11h02
  3. code non éxécutable
    Par abidi_niz dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/07/2005, 10h03

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