Я работаю над школьным проектом в php. Я создаю систему связи для веб-сайта (система регистрации уже создана), но мой код работает некорректно. Я француз, извините за мой плохой английский sh (примечание: mdp означает пароль). Вот мой код подключения:
<?php
// ------ connexion à la base de données -----------------------
include('./mdp.php'); //this is the password to acces to the database
try
{$bdd = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $userpswd);}
catch(Exception $e)
{die('Erreur : '.$e->getMessage());}
session_start();
$email=$_POST['email'];
$mdp = md5($_POST['password']);
$req = $bdd->prepare("USE informatica_database; SELECT id,email,mdp FROM Client WHERE email like :email and mdp like :mdp");
$req->bindValue(':email', $email, PDO::PARAM_STR);
$req->bindValue(':mdp', $mdp, PDO::PARAM_STR);
//echo $req;
$req->execute();
$nb = $req->rowCount();
$data= $req->fetch();
$req = $req->fetch(PDO::FETCH_ASSOC);
echo "<br>";
echo "DEBUG MODE : ";
echo "<br>";
echo "<br>";
echo "<p>Requête: </p>", $req;
echo "<br>";
echo "<p>NB: </p>", $nb;
echo "<br>";
echo "<p>Données: </p>", $data;
echo "<br>";
echo "<p>Donnée e-mail: </p>", $data['email'];
echo "<br>";
echo "<p>Requête e-mail: </p>", $req['email'];
echo "<br>";
if (!empty($data['email'])) {
if (password_verify($mdp, ':mdp')) {
echo "<p>Connexion avec succès à la boutique !</p>";
$_SESSION['message'] = "Connexion avec succès à la boutique !";
$_SESSION['id'] = $data['id'];
//header("Location: ./catalogue.php");//
exit();
}
else{
echo "<p>Le mot de passe est incorrect, veuillez réessayer à nouveau !</p>";
$_SESSION['message'] = "Le mot de passe est incorrect, veuillez réessayer à nouveau !";
//header("Location: ./connect.html");//
exit();
}
}
else {
echo "<p>L'adresse fournie est incorrecte ou n'existe pas ! Pensez à vérifier qu'il n'y ait pas de faute.</p>";
$_SESSION['message'] = "L'adresse fournie est incorrecte ou n'existe pas ! Pensez à vérifier qu'il n'y ait pas de faute.";
//header("Location: ./connect.html");//
exit();
}
echo $nb;
echo "Traitement terminé !";
//echo"<meta http-equiv='refresh' content='1;url=https://google.com/' />";//
?>
И отображается результат (до и после):
Но почта существует в базе данных:
Я проверил свою html, свою базу данных, и, похоже, ошибки там нет. Так может кто-нибудь мне помочь?