Problème requête SQL
Résolu
Yougo120
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
Yougo120 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Yougo120 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Bonjour j'ai crypté un mot de passe avec password_hash que j'ai mis dans ma base de données et lorsque je veux le récupérer, j'ai : "Array ( [motdepasse] => " qui se met devant et une parenthèse à la fin ce qui m'empêche de valider mon mot de passe avec password_verify, qui lui marche, car lorsque je met directement le mot de passe crypté au lieu de la variable, ça marche parfaitement ! le code:
<?php session_start(); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); try{ $db = new PDO('mysql:host=****;dbname=****', '****','****'); $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); // les noms de champs seront en caractères minuscules $db->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION); // les erreurs lanceront des exceptions global $db; }catch(Exception $e) { echo 'Problème: ' . $e->getMessage(); } if(isset($_POST['formconnexion'])) { $mailconnect = $_POST['mailconnect']; $mdpconnect = $_POST['mdpconnect']; echo $mailconnect; //c'est juste une vérification personnelle $req = $db->prepare("SELECT motdepasse FROM membres WHERE mail = '$mailconnect'"); $req->execute(array('motdepasse')); $usermdp = $req->fetch(PDO::FETCH_ASSOC); print_r($usermdp); //c'est juste une vérification personnelle if(password_verify($mdpconnect, $usermdp)){ echo'oui'; }else{ echo'non'; } ?>
A voir également:
- Problème requête SQL
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Requête bloquée par le pare-feu applicatif claranet webfence ✓ - Forum Réseaux sociaux
- Jointure sql ✓ - Forum MySQL
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
3 réponses
Bonjour
Tu récupères un array associatif...
Donc il faut utiliser
Tu récupères un array associatif...
Donc il faut utiliser
$usermdp['motdepasse']
Yougo120
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
Merci Beaucoup c'était parfaitement ce que je cherchais ! ça marche !
Salut !
Si tu regardes bien, t'as marqué n'importe quoi...
Pourquoi une requête préparée alors que tu ne mets aucun paramètres ?
Ton "execute" ne sert à rien...
Je t'invite à regarder ceci pour les requêtes préparées.
http://php.net/manual/fr/pdo.prepared-statements.php
Je crois que tu cherches à faire ça.
Si tu regardes bien, t'as marqué n'importe quoi...
$req = $db->prepare("SELECT motdepasse FROM membres WHERE mail = '$mailconnect'"); $req->execute(array('motdepasse')); $usermdp = $req->fetch(PDO::FETCH_ASSOC);
Pourquoi une requête préparée alors que tu ne mets aucun paramètres ?
Ton "execute" ne sert à rien...
Je t'invite à regarder ceci pour les requêtes préparées.
http://php.net/manual/fr/pdo.prepared-statements.php
Je crois que tu cherches à faire ça.
$mailconnect = $_POST['mailconnect']; $mdpconnect = $_POST['mdpconnect']; echo $mailconnect; //c'est juste une vérification personnelle $req = $db->prepare("SELECT motdepasse FROM membres WHERE mail = ?"); $req->execute(array($mailconnect)); $usermdp = $req->fetch(PDO::FETCH_ASSOC); print_r($usermdp['motdepasse']); //c'est juste une vérification personnelle