comparaison mot de passe bd et formulaire - PHP - Programmation
Marsh Posté le 26-11-2009 à 01:39:05
Vire ASAP ton login et mdp free avant que quelqu'un usurpe ton compte
Marsh Posté le 26-11-2009 à 12:27:52
1. Utilise les balises code (bouton ou balise [ code=php ]). Ca améliorera nettement la lisibilité...
2.
Code :
|
Comme mysql_query renvoie une ressource, un echo dessus est inutile
3.
Code :
|
C'est quoi cette fonction password('admin') ?
Tu as essayé ta requête en direct (phpMyAdmin) ?
[Edit]Fautes de frappe
Marsh Posté le 26-11-2009 à 13:08:38
En effet, la fonction PASSWORD ne doit pas être adapté car tu dis que tes mots de passe sont stockés en MD5, alors que la fonction PASSWORD ne retourne pas du tout le md5 de la chaîne passée en paramètres.
Par contre, il existe sous mysql une fonction MD5
Marsh Posté le 25-11-2009 à 23:51:16
Bonjour, j'ai un problème qui se présente lors de la mise en ligne de mon site, en local il fonctionne très bien.
Dans ma base de donnée j'ai une table configuration avec 2 champ : Login_admin (clé primaire) et Password_admin qui est crypté en md5 déclaré en var (32).
Dans mon fichier Log.php, je compare le mot de passe de la bd avec celui entré dand le formulaire, je crois que c'est la le problème mais n'en suis pas sure.
Quelqu'un pourra peut etre m'aider, car je n'avance plus et comprend de moins en moins mes erreurs.
Lorsque j'essaie de me connecter à la partie admin de mon site :
la variable Sql retourne : SELECT Login_admin, Password_admin FROM configuration WHERE Login_admin='admin' AND Password_admin=password('admin')
la variable Sql retourne : Resource id #2
erreur sur variable n
mon code Log.php
<?
session_start () ;
$db = mysql_connect ("sql.free.fr", "*****", "*****" ) ;
mysql_select_db ("*****" ) ;
switch ($_GET['action'])
{
case'Log_in':
//si on entre que l'identifiant sans mot de passe
if (empty ($_POST['Form_login']))
{
header ("Location: index.php?etat=1" ) ;
}
//si on entre que le mot de passe sans l'identifiant
elseif (empty ($_POST['Form_password']))
{
header ("Location: index.php?etat=2" ) ;
}
else
//si on entre l'identifiant et le mot de passe
{
$Sql = "SELECT Login_admin, Password_admin FROM configuration WHERE Login_admin='".$_POST['Form_login']."' AND Password_admin=password('".$_POST['Form_password']."')";
echo "la variable Sql retourne : $Sql<br>";
$Req = mysql_query ($Sql) or die ("erreur sur $Req" );
echo "la variable Sql retourne : $Req<br>";
$n = mysql_num_rows ($Req) or die ("erreur sur variable n" );
echo "<variable n retourne : $n lignes";
if ($n != 0)
{
session_register ("Admin" );
header ("Location: index.php" );
}
else
{
header ("Location: index.php?etat=3" ) ;
}
}
break ;
case'Log_out':
session_unregister ("Admin" ) ;
header ("Location: index.php" ) ;
break ;
case'Change':
if (empty ($_POST['Form_login']))
{
header ("Location: index.php?page=Change_pass&etat=1" ) ;
}
elseif (empty ($_POST['Form_password']))
{
header ("Location: index.php?page=Change_pass&etat=2" ) ;
}
elseif (empty ($_POST['Form_password_2']))
{
header ("Location: index.php?page=Change_pass&etat=3" ) ;
}
elseif ($_POST['Form_password'] != $_POST['Form_password_2'])
{
header ("Location: index.php?page=Change_pass&etat=4" ) ;
}
else
{
$Sql = "UPDATE `configuration` SET `Login_admin` = '".$_POST['Form_login']."', `Password_admin` = PASSWORD( '".$_POST['Form_password']."' )" ;
$Req = mysql_query ($Sql) ;
header ("Location: index.php?page=Change_pass&etat=5" ) ;
}
break ;
}
?>
Message édité par Gaoula73 le 26-11-2009 à 10:52:28