Page de connexion

Résolu
dannezri Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -  
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai précédemment créé ma page d'inscription (qui grace a l'aide des réponses a mes question sur ccm fonctionne) et là j'ai un nouveau petit problème: j'ai créé une page de connexion qui quand je met un utilisateur qui n'existe pas dans ma base de donné il me met pas de message d'erreur donc je pense que le problème est que ma page de connexion n'est pas connecter a ma base de donné.

Voici le code de ma page de connexion

<?php

error_reporting(E_ALL);

require_once 'cnxBDD.php';
if(isset($_POST['formconnexion']))
{
$mailconnect = htmlspecialchars($_POST['mailconnect']);
$mdpconnect =($_POST['mdpconnect']);
if(!empty($mailconnect)AND !empty($mdpconnect))
{
$requser = $bdd ->prepare("SELECT * FROM membres WHERE MAIL = ? AND motdepasse = ?");
$requser->execute(array($mailconnect, $mdpconnect));
$userexist = $requser->rowCount();
if(userexist == 1)
{

}
else
{
$erreur = "Mail ou mot de passe incorrect";
}
}
else
{
$erreur = "Tous les champs doivent être complétés";
}
}


?>







<html>
<head>
<title>Connexion</title>

</head>
<body>
<div>
<h2>Connexion</h2>
<br /><br />
<form method="POST" action="">
<input type="text" name="mailconnect" placeholder="Mail" />
<input type="password" name="mdpconnect" placeholder="Mot de passe" />
<input type="submit" name="formconnexion" value="Se connecter" />
</form>
<?php
if(isset($erreur))
{
echo $erreur;
}

?>
</div>
</body>
</html>



et voici la page nommé "cnxBDD.php" qui est censé me connecter a ma base de donné et que j'ai utilisé pour la page d'inscription et qui fonctionnait.

<?php


$host = "localhost";
$dbname = "espace_membres";
$user = "root";
$pwd = "root";

try{
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING);
$bdd = new PDO("mysql:host=".$host.";dbname=".$dbname.";charset=utf8", $user, $pwd ,$options);
}catch (Exception $e){
echo '<br>Erreur : ' . $e->getMessage();
exit();
}



Merci

1 réponse

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

La méthode rowCount() sur un objet PDOStatement retourne le nombre de lignes affectées par la dernière requête DELETE, INSERT ou UPDATE exécutée.
https://www.php.net/manual/fr/pdostatement.rowcount.php

Tu ne peux donc pas utiliser rowCount() pour compter le nombre de résultat d'une requête SELECT.

Il te suffit donc de compter le nombre de résultat directement dans ta requête sql et d'en récupérer la valeur :
$requser = $bdd ->prepare("SELECT count(*) FROM membres WHERE MAIL = ? AND motdepasse = ?");
$requser->execute(array($mailconnect, $mdpconnect));
$userexist = $requser->fetchColumn();


Bonne journée
0