Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2520 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème MD5

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème MD5

n°1062537
rado_rmh
Posté le 27-04-2005 à 12:04:59  profilanswer
 

Bonjour,
 
J'ai un petit problème avec la fonction de cryptage md5, et si quelqu un pourrai m'aider.
 
le site que je veux créer utilise une bdd mysql, et je programme en php.
 
Sur la page d'accueil (authentification) , j' ai un formulaire qui contient login "$_POST['login]" et mot de passe "$_POST['pass]".
 
Le probleme c'est que quand j'utilise la fonction md5() pour crypté le mot de passe du formulaire, pour le comparer avec celui dans la base (qui est aussi crypté par md5()), ma requete:  
 
  SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'
   
n'arrive pas à trouver la réponse, pourtant le mot de passe dans la base (crypté)  
et celui récupéré à partir du formulaire (crypté) sont les même, donc je ne vois pas pourquoi?
 
j'ai déjà tester le programme avec un mot de passe en clair (sans utiliser le md5), ça fonctionne bien!
 
Merci d'avance!

mood
Publicité
Posté le 27-04-2005 à 12:04:59  profilanswer
 

n°1062545
cesarr89
Posté le 27-04-2005 à 12:07:46  profilanswer
 

Ta essayé un echo de ton mot de passe crypté pour vérifier qu'il était cohérent avec celui de la BD?

n°1062560
skeye
Posté le 27-04-2005 à 12:11:12  profilanswer
 

Au hasard, ton champ 'pass' fait quelle taille, dans la base?[:petrus75]


---------------
Can't buy what I want because it's free -
n°1062569
rado_rmh
Posté le 27-04-2005 à 12:14:37  profilanswer
 

cesarr89 a écrit :

Ta essayé un echo de ton mot de passe crypté pour vérifier qu'il était cohérent avec celui de la BD?


 
Oui j'ai déjà fait un echo sur le mot de passe du formulaire crypté et c'est bien coherent avec celui de la BD!
 
 

n°1062573
cesarr89
Posté le 27-04-2005 à 12:15:50  profilanswer
 

C'est chelou là...
Balance ton code pour voir un peu.

n°1062575
skeye
Posté le 27-04-2005 à 12:16:12  profilanswer
 

fais afficher ta requête à l'écran au lieu de l'exécuter, et exécute-la à la main, pour voir.


---------------
Can't buy what I want because it's free -
n°1062578
cesarr89
Posté le 27-04-2005 à 12:18:32  profilanswer
 

oué aussi, pour en être sur

n°1062588
rado_rmh
Posté le 27-04-2005 à 12:27:16  profilanswer
 

voici mon code, et je remercie de votre aide:
 
<?php include('connexion.php'); ?>
<?php
 
session_start();
 
if (isset($_POST['login'])){  
 $login = $_POST['login'];
 $pass = $_POST['pass'];  
 
mysql_select_db($database_dbprotect, $dbprotect);
$verif_query=sprintf("SELECT * FROM tb_membre WHERE login='%s' AND pass='%s'", addslashes($login), md5($pass));  
$verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);
 
 
 if ($utilisateur) {  
     session_register("authentification" );
   
  $_SESSION['login'] = $row_verif['login'];  
  $_SESSION['pass'] = $row_verif['pass'];  
  $_SESSION['nom'] = $row_verif['nom'];  
 
   
  header("Location:accueil.php" );  
}
 else {
  header("Location:index.php?erreur=login" );  
 }
}
 
//  Déconnexion
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){
$prenom = $_SESSION['nom'];  
session_unset("authentification" );
header("Location:index.php?erreur=delog" );
}
?>
<html>
<head>
<title>Authentification</title>
<style type="text/css">
<!--
.Style2 {color: #0000FF}
.Style5 {color: #FF0000}
.Style6 {font-family: Verdana, Arial, Helvetica, sans-serif}
.Style7 {font-size: 12px}
-->
</style>
</head>
<body>
<form action="" method="post" name="connect" class="Style6">
  <p align="center" class="Style7"><strong>- ACCES MEMBRE - </strong></p>
  <p align="center" class="Style7"><em>Authentification</em></p>
  <p align="center" class="Style7"><strong>
      <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "login" )) { // Affiche l'erreur  ?>
      <span class="Style5">Echec d'authentification !!! &gt; login ou mot de passe incorrect</span>      <?php } ?>
      <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "delog" )) { // Affiche l'erreur ?>
      <span class="Style2">D&eacute;connexion r&eacute;ussie... A bient&ocirc;t !</span>      <?php } ?>
      <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "intru" )) { // Affiche l'erreur ?>
      <span class="Style5">Echec d'authentification !!! &gt; Aucune session n'est ouverte</span>
      <span class="Style5">ou vous n'avez pas les droits pour afficher cette page </span>
      <?php } ?>
  </strong><em>  </em></p>
  <div align="center" class="Style7">  
    <table width="300" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td><table width="294"  border="0" cellpadding="10" cellspacing="0" bgcolor="#eeeeee">
          <tr>
            <td width="50%"><span class="Style7">LOGIN</span></td>
            <td width="50%"><div align="center">
              <input name="login" type="text" id="login">
            </div></td>
          </tr>
          <tr>
            <td width="50%"><span class="Style7">MOT DE PASSE </span></td>
            <td width="50%"><div align="center">
              <input name="pass" type="password" id="pass">
            </div></td>
          </tr>
          <tr>
            <td height="34" colspan="2"><div align="center">
                <input type="submit" name="Submit" value="Se connecter">
            </div></td>
          </tr>
        </table></td>
      </tr>
    </table>  
  <p align="center"><a href="contruction.php"><strong>S'inscrire</strong></a></p>
  </div>
</form>
</body>
</html>
 

n°1062593
cesarr89
Posté le 27-04-2005 à 12:32:06  profilanswer
 

ouarf......tu peux mettre la balise [C.O.D.E] pour afficher le code stp, parce que la c'est pas très lisible...

n°1062599
rado_rmh
Posté le 27-04-2005 à 12:37:40  profilanswer
 

cesarr89 a écrit :

ouarf......tu peux mettre la balise [C.O.D.E] pour afficher le code stp, parce que la c'est pas très lisible...


 
<?php require_once('connexion.php'); ?>
<?php
 
session_start();
 
if (isset($_POST['login'])){  
 $login = $_POST['login'];
 $pass = $_POST['pass'];  
 
mysql_select_db($database_dbprotect, $dbprotect);
$verif_query=sprintf("SELECT * FROM tb_membre WHERE login='%s' AND pass='%s'", addslashes($login), md5($pass));  
$verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);
 
 
 if ($utilisateur) {  
     session_register("authentification" );
   
  $_SESSION['login'] = $row_verif['login'];  
  $_SESSION['pass'] = $row_verif['pass'];  
  $_SESSION['nom'] = $row_verif['nom'];  
 
   
  header("Location:accueil.php" );  
}
 else {
  header("Location:index.php?erreur=login" );  
 }
}
 
//  Déconnexion
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){
$prenom = $_SESSION['nom'];  
session_unset("authentification" );
header("Location:index.php?erreur=delog" );
}
?>

<html>
<head>
<title>Authentification</title>
</style>
</head>
<body>
<form action="" method="post" name="connect" class="Style6">
  <p align="center" class="Style7"><strong>- ACCES MEMBRE - </strong></p>
  <p align="center" class="Style7"><em>Authentification</em></p>
  <p align="center" class="Style7"><strong>
      <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "login" )) { // Affiche l'erreur  ?>
      <span class="Style5">Echec d'authentification !!! &gt; login ou mot de passe incorrect</span>      <?php } ?>
      <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "delog" )) { // Affiche l'erreur ?>
      <span class="Style2">D&eacute;connexion r&eacute;ussie... A bient&ocirc;t !</span>      <?php } ?>
      <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "intru" )) { // Affiche l'erreur ?>
      <span class="Style5">Echec d'authentification !!! &gt; Aucune session n'est ouverte</span>
      <span class="Style5">ou vous n'avez pas les droits pour afficher cette page </span>
      <?php } ?>

  </strong><em>  </em></p>
  <div align="center" class="Style7">  
    <table>
      <tr>
        <td><table>
          <tr>
            <td width="50%"><span >LOGIN</span></td>
            <td width="50%"><div align="center">
              <input name="login" type="text" id="login">
            </div></td>
          </tr>
          <tr>
            <td width="50%"><span class="Style7">MOT DE PASSE </span></td>
            <td width="50%"><div align="center">
              <input name="pass" type="password" id="pass">
            </div></td>
          </tr>
          <tr>
            <td height="34" colspan="2"><div align="center">
                <input type="submit" name="Submit" value="Se connecter">
            </div></td>
          </tr>
        </table></td>
      </tr>
    </table>  
  </div>
</form>
</body>
</html>

mood
Publicité
Posté le 27-04-2005 à 12:37:40  profilanswer
 

n°1062601
cesarr89
Posté le 27-04-2005 à 12:39:08  profilanswer
 

quand je disais [C.O.D.E] c'etait [cpp][/cpp]

n°1062602
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 27-04-2005 à 12:39:12  profilanswer
 

skeye a écrit :

Au hasard, ton champ 'pass' fait quelle taille, dans la base?[:petrus75]


 
+1  [:aloy]  
des fois qu'il soit tronqué a cause du varchar trop petit pour lequel il aurait pu opter dans sa base.

n°1062604
cesarr89
Posté le 27-04-2005 à 12:40:27  profilanswer
 

Fait un echo de $verif_query et execute le resultat du echo pour voir ce que ca retourne

n°1062732
rado_rmh
Posté le 27-04-2005 à 14:14:02  profilanswer
 

pmusa a écrit :

+1  [:aloy]  
des fois qu'il soit tronqué a cause du varchar trop petit pour lequel il aurait pu opter dans sa base.


 
Mon champs "pass" est un varchar(20), alors que md5() retourne un nombre de 32 caracteres (hexa)
Est ce que ca pourrait etre ça!
 

n°1062734
skeye
Posté le 27-04-2005 à 14:14:43  profilanswer
 

rado_rmh a écrit :

Mon champs "pass" est un varchar(20), alors que md5() retourne un nombre de 32 caracteres (hexa)
Est ce que ca pourrait etre ça!


ah ben oui ya des chances hein...[:moule_bite]


---------------
Can't buy what I want because it's free -
n°1062737
cesarr89
Posté le 27-04-2005 à 14:15:28  profilanswer
 

oui effectivement.....

n°1062745
KangOl
Profil : pointeur
Posté le 27-04-2005 à 14:19:24  profilanswer
 

rado_rmh a écrit :

Mon champs "pass" est un varchar(20), alors que md5() retourne un nombre de 32 caracteres (hexa)
Est ce que ca pourrait etre ça!


md5 renvoi toujours 32 caractere... donc dans ta base de donnée, faut pas un varchar(20) mais un char(32)


---------------
Nos estans firs di nosse pitite patreye...
n°1062766
rado_rmh
Posté le 27-04-2005 à 14:27:48  profilanswer
 

Yes! maintenant, ça marche!
 
En fait, c'etait bien le problème de taille de mon champs "pass".
 
Merci à tous (cesarr89, skeye)  et bonne continuation!

n°1062771
cesarr89
Posté le 27-04-2005 à 14:29:14  profilanswer
 

de rien et hésite pas à revenir en cas de problème

n°1062794
jagstang
Pa Capona ಠ_ಠ
Posté le 27-04-2005 à 14:41:57  profilanswer
 

mais bordel MD5 c'est pas du cryptage mais du hachage


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1062796
skeye
Posté le 27-04-2005 à 14:43:08  profilanswer
 

jagstang a écrit :

mais bordel MD5 c'est pas du cryptage mais du hachage


Oui, mais ce n'est pas le sujet.:o


---------------
Can't buy what I want because it's free -
n°1062800
jagstang
Pa Capona ಠ_ಠ
Posté le 27-04-2005 à 14:45:26  profilanswer
 

skeye a écrit :

Oui, mais ce n'est pas le sujet.:o


de plus, ce même problème avait déjà été résolu... merci d'utiliser la recherche...
 
http://forum.hardware.fr/forum2.ph [...] ash_post=0
 
edit : enfin, pas tout à fait le même, là il avait mis en varchar(15) et pas 20 :o


Message édité par jagstang le 27-04-2005 à 14:45:50

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1062805
skeye
Posté le 27-04-2005 à 14:47:06  profilanswer
 

jagstang a écrit :

de plus, ce même problème avait déjà été résolu... merci d'utiliser la recherche...
 
http://forum.hardware.fr/forum2.ph [...] ash_post=0
 
edit : enfin, pas tout à fait le même, là il avait mis en varchar(15) et pas 20 :o


Euh oui, mais le titre avait rien à voir et était mal écrit. Donc taggle.:o


---------------
Can't buy what I want because it's free -
n°1062808
jagstang
Pa Capona ಠ_ಠ
Posté le 27-04-2005 à 14:49:23  profilanswer
 

j'ai juste fait une recherche MD5 dans prog (titre)
 
c'est le 7ème qui sort. alors taggle toi-même  [:loom the gloom]  [:tartalap]


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème MD5

 

Sujets relatifs
[Flash] problème avec la fonction hitTest (problème illustré)petit probleme d'ecriture dans un fichier
Problème installation classe avec JREproblème avec les layers (Front Page)
Problème concaténation variables [RESOLU]Problème : Fonction Copy PHP
Problème installation Apache et PHPprobleme avec les sessions
probleme avec md5 et ma session [RESOLU]Probleme avec MD5
Plus de sujets relatifs à : Problème MD5


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR