1 pièce(s) jointe(s)
PHP - les mots de passes ne correspondent pas
Bonjour,
Je dois réaliser un blog avec commentaire en PHP et je rencontre un petit soucis :
Après avoir inséré un nouveau membre dans ma base (avec son pseudo et mot de passe) et qu'ensuite j'essaye de me connecter avec ce membre pour voir si cela fonctionne j'ai un
message d'erreur.
J'utilise l'architecture MVC , je vous montre le code :
La vue :
Code:
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
| <header>
<p>Jean FORTEROCHE</p>
<nav>
<ul>
<li> <img src="https://img.icons8.com/color/48/000000/home.png"/><a href="">Accueil</a></li>
<li> <img src="https://img.icons8.com/color/48/000000/open-book.png"/><a href="">Chapitres</a></li>
<li> <img src="https://img.icons8.com/color/48/000000/contact-card.png"/><a href="">Contact</a></li>
<li> <img src="https://img.icons8.com/color/48/000000/login-rounded-right.png"/><a href="connexionView.php">Connexion </a> <br>
</li>
<li> <img src="https://img.icons8.com/color/48/000000/administrator-male--v1.png"/><a href="AdminView.php">Espace administrateur</a></li>
</nav>
</header>
<section class="inscription">
<form action="../index.php?action=connexion" method="post">
<p>Connexion à votre espace</p>
<p><img src="../public/img/user.png" alt="user"></p>
<p>
<label for="pseudo"> <input type="text" name="pseudo" placeholder="Pseudo" required></label>
<label for="password"> <input type="text" name="pass" placeholder="Password" required></label>
<input type="submit" id="submit" name="submit" value="Connexion">
<span class="inscrire">Pas encore inscrit ? <a class="lien_inscrire" href="">S'inscrire</a></span>
</p>
</form>
</section>
<footer></footer>
</div> |
le Modèle :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<!--CONNEXION-->
<?php
require_once("Manager.php");
function getConnexion() {
$db = dbConnect();
$req = $db->prepare('SELECT id, pass FROM members WHERE pseudo = ?');
$req->execute(array($_POST['pseudo']));
$login = $req->fetch();
return $login;
} |
Le contrôleur :
Code:
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
|
<?php
function userLogged() {
require(__DIR__ . '/../model/connexionManager.php');
$login = getConnexion();
if (isset($_POST['pseudo']) && !empty($_POST['pseudo'])) {
if (isset($_POST['pass']) && !empty($_POST['pass'])) {
$isPasswordCorrect = password_verify($_POST['pass'], $login['pass']);
var_dump($isPasswordCorrect);
if (!$login) {
print 'Mauvais identifiant ou mot de passe !';
} else {
if (!$isPasswordCorrect) {
echo 'Mauvais identifiant ou mot de passe !';
} else {
print "Vous êtes connecté !";
$_SESSION['id'] = $password['id'];
$_SESSION['loggedin'] = true;
$_SESSION['pseudo'] = $_POST['pseudo'];
require(__DIR__ . '/../view/postsView.php');
}
}
}else {
print "Veuillez saisir un mot de passe";
}
} else {
print "Veuillez remplir ce champs !";
}
} |
Et le routeur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <?php
session_start();
require('Controller/Controller_AdminConnexion.php');
if (isset($_GET['action'])) {
if ($_GET['action'] == 'connexion') {
userLogged();
}
} else {
listPosts();
} |
et voici ma table :
Pièce jointe 582787
Et le message d'erreur provient exactement d'içi :
Code:
1 2 3 4
| if (!$isPasswordCorrect) {
echo 'Mauvais identifiant ou mot de passe !';
} |
var_dump affiche ceci "C:\ProgramFiles\wamp\www\Projet4\controller\Controller_connexion.php:10:boolean false"
Visiblement les 2 mots de passes ne correspondent pas alors que j'ai bien rentré dans le formulaire le bon mot de passe. Je ne vois pas du tout où est l'erreur.....
Merci pour votre aide