rabbouba1
Messages postés9Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 6 juin 2010
-
4 juin 2010 à 12:26
rabbouba1
Messages postés9Date d'inscriptionjeudi 5 avril 2007StatutMembreDerniè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 :)))
phpAnonyme
Messages postés392Date d'inscriptionmercredi 28 octobre 2009StatutMembreDernière intervention23 mars 201255 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...
______________________________________________________________________