Authentification et utilisation de MD5

Signaler
Messages postés
9
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
6 juin 2010
-
Messages postés
9
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
6 juin 2010
-
salut à tous,
mon niveau en php n'est pas excellent ,
et j'ai un souci pour faire une authentification
avec mot de passe et login.
le mot de passe enregistré dans la base est crypté avec md5
et le code de la vérification d'authentification est le suivant:

$connection = mysql_connect("localhost", "root", "") or die(mysql_error());
 mysql_select_db("site", $connection) or die(mysql_error());
 
  //Préparation de la requête
 $query = ("SELECT nom, mdp FROM inscription
            WHERE nom='".$_POST['user']."'
AND mdp='".md5($_POST['mdp'])."'")
or die(mysql_error());
 
 //exécution de la requête et récupération du nombre de résultats
  
$result = mysql_query($query) 
          or die ("Erreur: $query. " . mysql_error());
$data = (mysql_fetch_array($result) );

// Regarde les valeurs retournees par la base
if ($data)
{
echo $mdp."
\n";
echo md5($mdp)."
\n";
echo $data["mdp"]."
\n";
  if (!(md5($mdp) == $data["mdp"]))
  { 
     echo "vérifier votre mot de passe";
  }

else 
{
   echo "Nom d'utilistaeur introuvable";

}
session_name();
session_start();
session_register("nom");
//session_encode(); 
$url="Location: etat.php?PHPSESSID=".$PHPSESSID;
header($url);
}


en test (page html), il me redirige vers la page de ce code qui est vide.
s'il vous plait comment corriger ça?

dslé pour la longueur de mon message et merci d'avance :)))

2 réponses

Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
43
Salut,

//Préparation de la requête
$query = ("SELECT nom, mdp FROM inscription
WHERE nom='".$_POST['user']."'
AND mdp='".md5($_POST['mdp'])."'")
or die(mysql_error());
Parenthèses et 'fonction' die inutiles :
//Préparation de la requête
 $query  = "SELECT nom, mdp FROM inscription
            WHERE nom='".$_POST['user']."'
AND mdp='".md5($_POST['mdp'])."'";






$result = mysql_query($query)
or die ("Erreur: $query. " . mysql_error());
$data = (mysql_fetch_array($result) );

// Regarde les valeurs retournees par la base
if ($data)
{
Encore des parenthèses inutiles et mauvaise méthodes pour récupérer le jeu de résultats
$result = mysql_query($query) or die ("Erreur: $query. " . mysql_error());

if(mysql_num_rows($result)>0)
{
   SO GOOD !!!
}
else
{
    FUNNY ERROR !!!!
}






echo $mdp."
\n";
echo md5($mdp)."
\n";
echo $data["mdp"]."
\n";
if (!(md5($mdp) == $data["mdp"]))
{
echo "vérifier votre mot de passe";
}

else
{
echo "Nom d'utilistaeur introuvable";

}
Complètement inutile de retester si le MDP fournit est celui de base puisqu'on le vérifie déjà plus haut






Attention : ton script comportent des failles de sécurité.
[VOIR FONCTIONS] : stripslashes ou addslashes, htmlentities, mysql_ real_ escape_ string,etc...
______________________________________________________________________
Messages postés
9
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
6 juin 2010

Merci pour ces remarques