Мне нужна помощь, чтобы установить связь в php - PullRequest
0 голосов
/ 16 июня 2020

Я работаю над школьным проектом в 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/' />";//

?>

И отображается результат (до и после):

Before

After

Но почта существует в базе данных: Database row for the tested account

Я проверил свою html, свою базу данных, и, похоже, ошибки там нет. Так может кто-нибудь мне помочь?

...