Bonjour.
Pour un projet de GSI je suis en train de codé un site.
Je bloque sur une condition IF qui ne fonctionne pas. En effet je voudrais verifier si le login et le mot de passe entrés dans le formulaire correspondent au login / mot de passe dans la base de données.
Voici mon script :
Code :
- <?php
- //Protection anti XSS
- $login = htmlspecialchars($_POST['login']);
- $password = htmlspecialchars($_POST['password']);
- $login_bdd="";
- $password_bdd="";
- $id_bdd="";
- //Si on a le login ET le mot de passe ne sont pas vide on continue d'execute le script
- if (!empty($login) && !empty($password))
- {
- // Recherhce dans la table du login et du mot de passe.
- $db=mysql_connect("127.0.0.1","root","" ) or die ("Erreur de connection." );
- mysql_select_db("projet",$db) or die ("Erreur de table." );
- $sql = "SELECT `utilisateur`.`login_utilisateur`, `utilisateur`.`password_utilisateur`,`id`\n"
- . "FROM `utilisateur`\n"
- . "WHERE (`utilisateur`.`login_utilisateur` = \"$login\" )\n"
- . " ";
- $resultat_sql=mysql_query($sql);
- while ($données = mysql_fetch_assoc($resultat_sql))
- {
- $login_bdd = $données['login_utilisateur'];
- $password_bdd = $données['password_utilisateur'];
- }
- if (($password_bdd != $password) && ($login_bdd != $login)) {
- echo "Le login ou le mot de passe est incorect.";
- }
- else
- //Une fois que le couple login formulaire et login BDD (+ mot de passe) sont correcte on peut
- //attribué l'id de l'utilisateur a une varibale pour en faire une variable de SESSION qui nous
- // sert a authentifier l'utlisateur dans tout le site.
- {
- while ($données = mysql_fetch_assoc($resultat_sql))
- {
- $id_bdd = $données['id'];
- }
- // Variable de sessions.
- $_SESSION['login_utilisateur']= $login_bdd;
- $_SESSION['password_utilisateur'] = $password_bdd;
- $_SESSION['id_bdd'] = $id_bdd;
- echo "MA FUTURE PAGE D'ADMINISTRATION";
- }
- }
- else
- {
- echo "Vous devez remplir tout les champ du formulaire.";
- }
- ?>
|
Si je met un bon login mais un mauvais mot de passe j'ai acces a la futur page d'admin. Par contre si je me trompe de login j'ai bien le message d'erreur attendu.
J'ai l'impresion que le script verifie l'exactitude uniquement sur le login et non le mot de passe.
Quand je fait par exemple
Code :
- if ($password == $password_bdd)
- {
- echo "Les mot de passe sont identique";
- }
- else
- {
- echo "Les mot de passe sont differants";
- }
|
J'ai bien la reponse : Les mot de passe sont identique ...
Je ne comprend pas mon erreur.
Merci