problème condition if

problème condition if - PHP - Programmation

Marsh Posté le 09-11-2013 à 22:59:13    


<?php // connexion avec la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=ppe', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
 
?>
<?php
 
$email=htmlspecialchars($_POST['email']);                   // On récupère dans la variable "email" l'email de l'utilisateur
$mot_de_passe=htmlspecialchars($_POST['mot_de_passe']);     // On récupère dans la variable "mot_de_passe" le mot de passe de l'utilisateur
//FONCTIONNE
// {
// On prépare la requête : recupérer de la table "utilisateur" le mot de passe correspondant à l'email saisie
if (empty($email) OR empty($mot_de_passe))
{// On redirige vers la page de'accueil pour l'utilisateur :
header('Location: index.php?pb=2;');
// On arrête la requête
$req->closeCursor();
}
// }
// FONCTIONNE
// {
else
{
$req = $bdd->prepare('SELECT mot_de_passe, email FROM inscription WHERE
email = :email');
$req->execute(array('email' => $email));
 
$affichage = $req->fetch();
 
echo 'email :'. $affichage['email'] .' </br>';
echo $affichage['mot_de_passe'];
echo $mot_de_passe;
$vérification_mdp=$affichage['mot_de_passe'];
echo'<br/>'.$vérification_mdp.'';
// }
//FONCTIONNE
if($vérification_mdp=="erreip10" ) // ce, n'est jamais égale pourtant l'affichage est le même ( est-ce parce que c'est un tableau ) . A l'aide
{
 
// On arrête la requête
 
$req->closeCursor();
setcookie('email',$email, time() + 365*24*3600); // On écrit un cookie pour stocker l'email de l'utilisateur dans son disque dureecho 'oui!';
 
// On redirige vers la page de connexion :
//   header('Location: bon_mdp.php?pb=2;');
}
if($affichage['mot_de_passe']!=$mot_de_passe)
{
echo 'non!';
// On arrête la requête
$req->closeCursor();
 
// On redirige vers la page de'accueil pour l'utilisateur :
//   header('Location: faux_mdp.php?pb=2;');
}
}
 
 
 
 
 
 
?>
 
<?php  // Permet l'affichage détaillé des erreurs
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '',
array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
?>

Reply

Marsh Posté le 09-11-2013 à 22:59:13   

Reply

Marsh Posté le 10-11-2013 à 01:08:20    

if (tu_veux_qu_on_d_aide==true)
expliquer_ton_problem=true;
endif


---------------
www.pronovolley.fr Faites vos prono sur la ligue de Volley et défiez vos amis. Des cadeaux en fin d'année  www.levoll.fr
Reply

Marsh Posté le 10-11-2013 à 18:40:06    

j'ai posté ça en 1 min hier j'ai pas eu le temps :/
Donc j'ai un formulaire afin de se connecter un son compte ( pour l'instant c'est le début et j'ai rentrer un utilisateur pour tester ).
Je rentre l'email et le mdp. J'arrive à extraire de la base le mot de passe je l'es mis dans $vérification_mdp. Mais la condition $vérification_mdp==$mot_de_passe est tout le temps fausse . J'ai afficher le contenue : il est égale , le nombre de caractère : égale . Je ne comprends pas pourquoi ma boucle ne fonctionne pas . Voilà
Merci d'avance :)

Reply

Marsh Posté le 10-11-2013 à 18:41:00    

Voila mon formulaire :
 
<?php
if (isset($_COOKIE['pseudo']))
{
 ?>
<center>
 <div id="1" name="formulaire_connexion">
<form action="connexion.php" method="post">
<FIELDSET><p>
email : <input type="text" name="pseudo" value="<?php echo $_COOKIE['pseudo']; ?>" /> <br/>
Mot de passe : <input type="password" name="mot_de_passe" /><br/>
<input type="submit" value="Connexion" />
</p></FIELDSET>
</form>
</center>
 <?php
}
else
{
?>
<center>
<form id="1" action="connexion.php" method="post">
<FIELDSET><p>
email : <input type="text" name="email" /> <br/>
Mot de passe : <input type="password" name="mot_de_passe" /><br/>
<input type="submit" value="Connexion" />
</p></FIELDSET>
</form>
</center>
<?php
}
?>
 
<p>
<a href="inscription.php">Pas encore inscris ?</a>
</center>
</p>
</div>

Reply

Marsh Posté le 10-11-2013 à 23:05:21    

:hello: !
 
À mon avis, le problème vient de la comparaison qui est faite : si on lit la doc PHP :

Citation :


Si vous comparez un nombre avec une chaîne ou bien que la comparaison implique des chaînes numériques, alors chaque chaîne sera convertie en un nombre et la comparaison sera effectuée numériquement.


Vu que dans ton mot de passe, tu as la chaîne "erreip10", il y a une conversion.
 
Essaie plutôt d'utiliser la fonction strcmp( ) je dirais ;) (ou alors essayer === mais j'en suis pas sûr :??:)
 
:jap:


---------------
And in the end, the love you take is equal to the love you make
Reply

Marsh Posté le 11-11-2013 à 10:12:31    

Essaie plutôt d'utiliser la fonction strcmp( ) je dirais ;) (ou alors essayer === mais j'en suis pas sûr :??:)
 
Merci de t'on aide Soileh j'essayerai tes suggestions des que possible :)  
 
Petite question : Pourquoi il y a une conversion du mot de passe que j'ai récupéré dans la bdd et pas dans le mot le mot de passe récupérer du formulaire avec POST ? : enfin si je remplace dans le condition le mot de passe tapé par l'utilisateur si celui-ci est "erreip10" la boucle fonctionne .

Reply

Marsh Posté le 11-11-2013 à 10:30:59    

=== ça ne fonctionne pas. Mais j'ai découvert l'utilité de strcmp() et ça fonctionne très bien ! :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed