首页 > 解决方案 > 我需要帮助才能在 php 中建立联系

问题描述

我正在为 php 中的一个学校项目工作。我正在为一个网站做一个连接系统(注册系统已经完成),但我的代码不能正常工作。我是法国人,很抱歉我的英语不好(注意: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,我的数据库,并且错误似乎不存在。那么有人可以帮助我吗?

标签: phpemailwebpdo

解决方案


推荐阅读