Bonjour,

Je ne sais pas vraiment si je poste au bon endroit, mais je tente ma chance, on verra bien.
J'ai créer un espace membre pour mon site, à l'aide des classes PDO. Mais, même si l'inscription à ma base de données se réalise parfaitement, au moment où je me connecte via le formulaire de connection pour accéder aux pages privées, il ne reconnait pas l'utilisateur. Il ne parcourt pas ma base de donnée pour vérifier si l'utilisateur existe avec le bon mot de passe. Donc, n'importe qui peut encoder n'importe quoi, il rentre quand même sur ma page. Pouvez vous m'aider à voir l'erreur que je fais en regardant mon code? merci d'avance !

Voici ma page de connection à l'espace membre
<?php
session_start();
require_once '..//connection.php'; // Connection à la base de donnée
?>
<?php
if(!empty($_POST)){
$membre=$_POST'membre'];
$pwd=md5($_POST'pwd']);

$q=array('membre'=>$membre,'pwd'=>$pwd);
$sql='SELECT membre,pwd FROM p12pass WHERE membre = :membre and pwd = :pwd';
$req=$connection->prepare($sql);
$req->execute($q);
$count=$req->rowCount ($sql);

if($count ==1){
// Vérifier si l'utilisateur existe
$sql='SELECT membre,pwd FROM p12pass WHERE membre = :membre and pwd = :pwd AND activer=1';
$req=$connection->prepare($sql);
$req->execute($q);
$actif=$req->rowCount ($sql);

if($actif ==1){
$_SESSION"authentif"] = array(
'membre' =>$membre,
'pwd' =>$pwd
);
header('location:..//pages_mbres/index.php');
}else{
$erreur_actif = 'Votre compte n est pas actif, vérifiez vos données';
}
}else{ // Membre inconnu
$erreur_non = 'Membre inexistant, veuillez vérifier votre nom de membre';
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="CSS/style.css" type="text/css" />
</head>
<body>
<?php

?>
<div id="liens">
<ul>
<li><a href="../index.php">Accueil</a></li>
</ul>
</div>
<h1>Bienvenue dans l'espace réservé aux membres</h1>
<h2>Veuillez vous identifier pour continuer</h2>

<p>Connection</p>
<form method="POST" action="..//pages_mbres/index.php" action="<?php echo $_SERVER'PHP_SELF'] ?>">
<p><label for="membre">Votre login</label></br>
<input type="text" name="membre" size="30" maxlength="15"</p>

<p><label for="pwd">Votre mot de passe</label></br>
<input type="password" name="pwd" size="30" maxlength="10"></p>

<p><input type="submit" name="valider" value="Se connecter"></p>
</form>
</body>
</html>

4 réponses


siriu
Réponse acceptée

Ca ne viendrait pas du rowcount ?

lilo
Auteur
Réponse acceptée

Bonjour,

Merci pour ta réponse rapide :) Mais j'ai trouvé.
L'erreur vient de là, elle est vraiment toute bête :
<form method="POST" action="..//pages_mbres/index.php" action="<?php echo $_SERVER'PHP_SELF'] ?>">
Correction : <form method="POST" action="..//login.php" action="<?php echo $_SERVER'PHP_SELF'] ?>">

Si je ne met pas le fichier qui authentifie l'utilisateur, ça n'ira pas ;)

PaulArovids
Réponse acceptée

Salut, je m'incruste juste pour (t')épargner un problème (pour/)avec Grafikart, tu as les balises

pour rendre plus visible ton code.
N'oublis pas aussi de mettre ton problème en résolu.

Merci, cordialement.

lilo
Auteur
Réponse acceptée

Merci beaucoup :)