par
pipou » 02 janv. 2011, 16:27
Bonjour,
J'ai un problème avec une condition, je ne comprend pas pourquoi elle ne redirige pas à la page voulu quand l'identifiant ou le mot de passe (même si je met un echo cela ne marche pas) est faux, voici le bout du code php concerné:
if (isset ($result) && !empty($result)) {
header('Location:mauvaisidentifiant.php');
}
Le code PHP de l'include connexion avec le html
<?php
include_once 'include_class.php';
if (!empty ($_POST)) {
extract($_POST);
$valid = true;
}
if (empty ($pseudo)) {
$valid = false;
$erreurPseudo = true;
}
if(empty ($pass)) {
$valid = false;
$erreurPass = true;
}
if ($valid) {
$result = membreFactory::logUtilisateur($login, $pass);
}
if (!empty($erreurPseudo) && isset($erreurPseudo)) {
}
if (!empty($erreurPass) && isset($erreurPass)) {
}
if (!empty($_SESSION['Auth'])) {
echo 'Bienvenue' .$_SESSION['Auth']['login'].'!';
echo '<a href="pageMembre.php">Page Membre</a>';
if ($_SESSION['Auth']['type'] == 'admin') {
echo '<a href="admin.php">Panneau d\'administration</a>';
}
echo '<a href="logout.php">Deconnexion</a>';
}else {
if (isset ($result) && !empty($result)) {
header('Location:mauvaisidentifiant.php');
}
}
?>
<form action="index.php" method="post">
<div id="connexion"> <img src="images/avatar.png" class="avatar" alt="Avatar de base du site"/>
<div id="champs">
<input id="champ_pseudo" type="text" value="<?php if(isset($pseudo) && $pseudo !="") { echo $pseudo;} else {echo 'pseudo';}?>" accesskey="4" name="login" />
<input id="champ_mdp" type="password" value="<?php if(isset($pass) && $pass !="") { echo $pass;} else {echo 'password';}?>" accesskey="4" name="pass" />
</div>
<div id="boutonconnexion"><input type="submit" id="porte" value=""/></a></div></form>
<a href="inscription.php" id="textconnexion">S'INSCRIRE !</a><a href="oublie.php" id="textconnexion2">MOT DE PASSE OUBLIÉ ?</a> </div>
Et la méthode nécessaire au bon fonctionnement de ce code:
static function logUtilisateur($loginIn, $passwordIn) {
$bdd = utilitaire::ConnexionBDD();
$query = 'SELECT id,login, pass, type FROM Membres WHERE login=?';
$stmt = $bdd->prepare($query);
if($stmt) {
$stmt->bind_param('s', $loginIn);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows() !=0) {
$stmt->bind_result($id, $login, $pass, $type);
while ($stmt->fetch()) {
if($pass === md5($passwordIn)){
if (self::compteActif($loginIn)){
$_SESSION['Auth'] = array(
'id' => $id,
'login' => $login,
'pass' => $pass,
'type' => $type
);
} else {
return $result = 'Compte non activé';
}}
else {
return $result = 'Mauvais identifiant';
}
}
} else {
return $result = 'Mauvais identifiant';
}
}
$stmt->close();
$bdd->close();
}
Merci beaucoup de votre aide.
Bonjour,
J'ai un problème avec une condition, je ne comprend pas pourquoi elle ne redirige pas à la page voulu quand l'identifiant ou le mot de passe (même si je met un echo cela ne marche pas) est faux, voici le bout du code php concerné:
[php]if (isset ($result) && !empty($result)) {
header('Location:mauvaisidentifiant.php');
}[/php]
Le code PHP de l'include connexion avec le html
[php] <?php
include_once 'include_class.php';
if (!empty ($_POST)) {
extract($_POST);
$valid = true;
}
if (empty ($pseudo)) {
$valid = false;
$erreurPseudo = true;
}
if(empty ($pass)) {
$valid = false;
$erreurPass = true;
}
if ($valid) {
$result = membreFactory::logUtilisateur($login, $pass);
}
if (!empty($erreurPseudo) && isset($erreurPseudo)) {
}
if (!empty($erreurPass) && isset($erreurPass)) {
}
if (!empty($_SESSION['Auth'])) {
echo 'Bienvenue' .$_SESSION['Auth']['login'].'!';
echo '<a href="pageMembre.php">Page Membre</a>';
if ($_SESSION['Auth']['type'] == 'admin') {
echo '<a href="admin.php">Panneau d\'administration</a>';
}
echo '<a href="logout.php">Deconnexion</a>';
}else {
if (isset ($result) && !empty($result)) {
header('Location:mauvaisidentifiant.php');
}
}
?>
<form action="index.php" method="post">
<div id="connexion"> <img src="images/avatar.png" class="avatar" alt="Avatar de base du site"/>
<div id="champs">
<input id="champ_pseudo" type="text" value="<?php if(isset($pseudo) && $pseudo !="") { echo $pseudo;} else {echo 'pseudo';}?>" accesskey="4" name="login" />
<input id="champ_mdp" type="password" value="<?php if(isset($pass) && $pass !="") { echo $pass;} else {echo 'password';}?>" accesskey="4" name="pass" />
</div>
<div id="boutonconnexion"><input type="submit" id="porte" value=""/></a></div></form>
<a href="inscription.php" id="textconnexion">S'INSCRIRE !</a><a href="oublie.php" id="textconnexion2">MOT DE PASSE OUBLIÉ ?</a> </div>[/php]
Et la méthode nécessaire au bon fonctionnement de ce code:
[php]static function logUtilisateur($loginIn, $passwordIn) {
$bdd = utilitaire::ConnexionBDD();
$query = 'SELECT id,login, pass, type FROM Membres WHERE login=?';
$stmt = $bdd->prepare($query);
if($stmt) {
$stmt->bind_param('s', $loginIn);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows() !=0) {
$stmt->bind_result($id, $login, $pass, $type);
while ($stmt->fetch()) {
if($pass === md5($passwordIn)){
if (self::compteActif($loginIn)){
$_SESSION['Auth'] = array(
'id' => $id,
'login' => $login,
'pass' => $pass,
'type' => $type
);
} else {
return $result = 'Compte non activé';
}}
else {
return $result = 'Mauvais identifiant';
}
}
} else {
return $result = 'Mauvais identifiant';
}
}
$stmt->close();
$bdd->close();
}
[/php]
Merci beaucoup de votre aide.