Problème requête SQL
Résolu
Yougo120
Messages postés
24
Statut
Membre
-
Yougo120 Messages postés 24 Statut Membre -
Yougo120 Messages postés 24 Statut Membre -
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
- Sql (+) - Forum Programmation
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
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
24
Statut
Membre
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