Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1932 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  comparaison mot de passe bd et formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comparaison mot de passe bd et formulaire

n°1944784
Gaoula73
Posté le 25-11-2009 à 23:51:16  profilanswer
 

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
mood
Publicité
Posté le 25-11-2009 à 23:51:16  profilanswer
 

n°1944789
orazur
Posté le 26-11-2009 à 01:39:05  profilanswer
 

Vire ASAP ton login et mdp free avant que quelqu'un usurpe ton compte [:kluruit]

n°1944896
macgawel
Posté le 26-11-2009 à 12:27:52  profilanswer
 

1. Utilise les balises code (bouton http://forum-images.hardware.fr/icones/message/c.gif ou balise [ code=php ]). Ca améliorera nettement la lisibilité...
 
2.

Code :
  1. $Req = mysql_query ($Sql) or die ("erreur sur $Req" );
  2. echo "la variable Sql retourne : $Req<br>";


Comme mysql_query renvoie une ressource, un echo dessus est inutile  :o  
 
3.

Code :
  1. SELECT Login_admin, Password_admin FROM configuration WHERE Login_admin='admin' AND Password_admin=password('admin')


C'est quoi cette fonction password('admin') ?
 
Tu as essayé ta requête en direct (phpMyAdmin) ?
 
[Edit]Fautes de frappe  :o


Message édité par macgawel le 26-11-2009 à 12:28:53
n°1944906
Tirkyth
Posté le 26-11-2009 à 13:08:38  profilanswer
 

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 :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  comparaison mot de passe bd et formulaire

 

Sujets relatifs
comparaison fausse de 2 entiers[RESOLU] >>> Redirection vers une URL selon le mot de passe !
Pb avec un formulaireRécupérer variables utilisateur et mot de passe pour connexion auto
Remplir formulaire distant utilisant la méthode PostBouton reset plus commande php dans formulaire
Parser une page HTML avec mot de passeFormulaire de type "si bonne reponse, afficher xxx"
CakePHP et formulaire : Quel est le bon nom de ce champ ?Pb sur formulaire javascript
Plus de sujets relatifs à : comparaison mot de passe bd et formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR