Problème md5

Résolu/Fermé
footeu - Modifié par footeu le 8/07/2011 à 11:46
 footeu - 8 juil. 2011 à 15:42
Bonjour,

Étant débutant et codant actuellement un site internet en php/mysql je bloque sur le md5 et je ne comprend pas pourquoi. Lors de l'inscription d'un nouveau membre son mdp est enregistré en et crypté en MD5 sur notre DB et pour la connexion je crypte ce que l'utilisateur a tapé en MD5 et je compare avec celui de la DB.

Or le souci est ici la comparaison est identique (j'ai affiché la variable pour vérifier) pourtant cela me marque identifiant incorrect.

Voici le code en question :

$crypmdp=md5($_POST['mdp']); 
$compt=0; $taille=0; 
$db=mysql_connect("localhost","root","");  // connexion à la BDD 
mysql_select_db("database",$db);        // Sélection de la base 
$rep=mysql_query("SELECT * FROM users");     // on selectionne la table 
while($resu=mysql_fetch_array($rep))        // on lit une réponse 
 { 
  if($_POST['login']==$resu['login'] && $crypmdp==$resu['mdp'] && $resu['actif']==1)  // Si le login et le mot de passe sont indentique ainsi que le compte soit validé alors redirection vers la page d'acceuil sinon erreur 
  { 
    $taille++; 
    $_SESSION['id']=$resu['id']; 
    echo"Vous êtes maintenant connecté, vous allez être redirigé vers votre compte."; 
    echo"<META http-equiv=\"refresh\" content=\"3; URL=http://localhost/site_bis/index.php\">"; 
     
  } 
  else 
  { 
   if(($_POST['login']==$resu['login'] && $_POST['mdp']==$resu['mdp'] && $resu['actif']==0)) 
   { 
    $taille++; 
    echo"Vous n'avez pas validé votre compte!"; 
   } 
   else 
   { 
   $taille++; 
   $compt++; 
   } 
  } 
 } 
if ($taille==$compt)  
 { 
  echo"Identifiants incorrects, veuillez réessayer."; 
  echo $crypmdp; 
  echo $_POST['login']; 
  //echo"<META http-equiv=\"refresh\" content=\"2; URL=http://localhost.com/site_bis/index.php\">"; 
  mysql_close($db); 
  exit; 
 } 
  
mysql_close($db); // Fermeture de la BDD 
?> 


Merci d'avance.

A voir également:

2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
8 juil. 2011 à 14:03
Bonjour,

Dans ton deuxième if(), tu utilises $_POST['mdp'] au lieu de $crypmdp.

Sinon, tu pourrais largement simplifier ton code en faisant faire la vérification des login et mots de passe par MySQL :
$crypmdp=md5($_POST['mdp']);
$login = mysql_real_escape_string($_POST['login']);

$db=mysql_connect("localhost","root","");  // connexion à la BDD 
mysql_select_db("database",$db);        // Sélection de la base 

$rep=mysql_query("SELECT * FROM users WHERE login='$login' AND mdp='$crypmdp'");     // on selectionne la table 

if (mysql_num_rows($rep) == 0)
{
  echo "Identifiants incorrects, veuillez réessayer."; 
  echo"<META http-equiv=\"refresh\" content=\"2; URL=http://localhost.com/site_bis/index.php\">"; 
}
else
{
    $resu=mysql_fetch_array($rep);
    if ($resu['actif'] == 1)
    {
        $_SESSION['id']=$resu['id']; 
        echo"Vous êtes maintenant connecté, vous allez être redirigé vers votre compte."; 
        echo"<META http-equiv=\"refresh\" content=\"3; URL=http://localhost/site_bis/index.php\">"; 
    }
    else
    {
        echo "Vous n'avez pas validé votre compte !"; 
    }
}

  
mysql_close($db); // Fermeture de la BDD 
?> 


Xavier
1
Merci beaucoup Xavier c'est résolu.
0