Authentification et utilisation de MD5

rabbouba1 Messages postés 9 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 6 juin 2010 - 4 juin 2010 à 12:26
rabbouba1 Messages postés 9 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 6 juin 2010 - 6 juin 2010 à 11:54
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

phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
5 juin 2010 à 06:07
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...
______________________________________________________________________
0
rabbouba1 Messages postés 9 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 6 juin 2010
6 juin 2010 à 11:54
Merci pour ces remarques
0
Rejoignez-nous