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

  FORUM HardWare.fr
  Programmation
  PHP

  probleme avec md5 et ma session [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme avec md5 et ma session [RESOLU]

n°859613
Scarf3ss3
Posté le 29-09-2004 à 05:34:49  profilanswer
 

voilà là il y a un truc que je comprends pas
si je n'utilise pas md5, au moment de l'identification il trouve le mot de passe sans problème
si j'utilise md5 là non:
 
 pour l'insertion là aucun probleme je retrouve dans ma table le pass en crypté

Code :
  1. $motCrypte = md5 ($_POST['mdp']);
  2. INSERT INTO contact (mdp) VALUES ('$motCrypte')";

 
Pour la recherche pour une ouverture de session...
le nom de mon champs text est mdp. En gros $contact est un objet contenant les infos du contacts provenant de ma table apres une requete sur l'identifiant, et mdp qu'il appelle est son mot de passe crypté qu'il compare au mot de passe que le visiteur vient de saisir pour s'identifier.

Code :
  1. if ($contact->mdp == md5($mdp))

 
et donc là quand je veux m'identifier j'ai toujours mot de passe incorrect.
Je sais pas si je suis cair ???


Message édité par Scarf3ss3 le 29-09-2004 à 17:31:09
mood
Publicité
Posté le 29-09-2004 à 05:34:49  profilanswer
 

n°859629
Xav_
The only one...
Posté le 29-09-2004 à 08:15:32  profilanswer
 

la ligne de comparaison est celle de ton code ou tu à recopié ???  
paske il te manque "$" pour lui dire que $mdp est une variable

Code :
  1. if ($contact->mdp == md5($mdp))


 
si c'est la meme ligne que dans ton script, le pb doit venir de là ;)

n°859903
Masenko
Posté le 29-09-2004 à 12:35:16  profilanswer
 

Code :
  1. $sql_connect = mysql_connect( "$sqlhost" , "$sqluser" , "$sqlpass" );
  2. mysql_select_db( "$sqldb", $sql_connect );
  3. $requete = ( 'SELECT mdp FROM base WHERE user="' . $_POST['user'] . '"' ) ;
  4. $query = mysql_query($requete);
  5. $fetch = mysql_fetch_array($query);
  6. mysql_close();
  7. $mdpdb = $fetch['mdp'];
  8. $mdppost = md5($_POST['mdp']);
  9. if ( $mdpdb == $mdppost )
  10. {
  11. echo "success !";
  12. }
  13. elseif ( $mdpdb != $mdppost )
  14. {
  15. echo "login ou mot de pass invalide";
  16. }


Message édité par Masenko le 29-09-2004 à 15:40:18
n°860078
Scarf3ss3
Posté le 29-09-2004 à 15:22:06  profilanswer
 

Xav_ a écrit :

la ligne de comparaison est celle de ton code ou tu à recopié ???  
paske il te manque "$" pour lui dire que $mdp est une variable

Code :
  1. if ($contact->mdp == md5($mdp))


 
si c'est la meme ligne que dans ton script, le pb doit venir de là ;)


ba non

Code :
  1. $contact->mdp;

mdp est un attribut pas une variable  
edit : pardon j'avais pas vu que j'avais oublie le $ dans == md5(mdp) j'edit


Message édité par Scarf3ss3 le 29-09-2004 à 15:57:44
n°860081
Scarf3ss3
Posté le 29-09-2004 à 15:22:54  profilanswer
 

masenko a écrit :

Code :
  1. $mdpdb = $fetch['mdp'];
  2. $mdppost = md5($_POST['mdp']);
  3. if ( $mdp == $mdppost )
  4. {
  5. echo "success !";
  6. }
  7. elseif ( $mdp != $mdppost )
  8. {
  9. echo "login ou mot de pass invalide";
  10. }


 
 
Comme ça ça devrait fonctionner en imaginant que pour la variable $mdpdb tu as fais un mysql_fetch_array WHERE user=".$_POST['user']."


marche po, je ne comprends pas là, je suis perdu  :cry:

n°860094
Masenko
Posté le 29-09-2004 à 15:30:42  profilanswer
 

normal j'ai fais une petite faute regarde le poste j'ai edité ça devrait être bon

n°860102
kalex
Posté le 29-09-2004 à 15:35:53  profilanswer
 

scarf3ss3 a écrit :

ba non "$contact->mdp"; "mdp" est un attribut pas une variable

Houla, met des guillemets autour de mdp, parce que ça prête à confusion !

n°860104
Scarf3ss3
Posté le 29-09-2004 à 15:37:18  profilanswer
 

kalex a écrit :

Houla, met des guillemets autour de mdp, parce que ça prête à confusion !


oui pardon effectivement  ;)

n°860105
Masenko
Posté le 29-09-2004 à 15:37:30  profilanswer
 

masenko a écrit :

Code :
  1. $sql_connect = mysql_connect( "$sqlhost" , "$sqluser" , "$sqlpass" );
  2. mysql_select_db( "$sqldb", $sql_connect );
  3. $requete = ( 'SELECT mdp FROM base WHERE user="' . $_POST['user'] . '"' ) ;
  4. $query = mysql_query($requete);
  5. $fetch = mysql_fetch_array($query);
  6. mysql_close();
  7. $mdpdb = $fetch['mdp'];
  8. $mdppost = md5($_POST['mdp']);
  9. if ( $mdpdb == $mdppost )
  10. {
  11. echo "success !";
  12. }
  13. elseif ( $mdpdb != $mdppost )
  14. {
  15. echo "login ou mot de pass invalide";
  16. }



 
Je m'auto cite donc comme ça c'est bon voilà bonne chance pour la suite


Message édité par Masenko le 29-09-2004 à 15:39:41
n°860135
Scarf3ss3
Posté le 29-09-2004 à 15:55:46  profilanswer
 

masenko a écrit :

Je m'auto cite donc comme ça c'est bon voilà bonne chance pour la suite


merci masenko mais malheureusement tu m'as pas laissé le temps de te repondre.
j'avais corrigé ton petit oubli mais ça ne marchait pas quand même.
J'utilise la même structure sous forme d'appel de fonction mais c'est exactement la même.
Le probleme est bizarre puisque que je rappel que si je rentre un pass sans le haché en md5 et que je le compare avec :

Code :
  1. if ($contact->mdp == $mdp)

 
ça marche !
alors que  

Code :
  1. if ($contact->mdp == md5($mdp))

ne marche pas dans le cas d'un pass haché en md5 !!!!
c'est imcomprehensible !
aidé moi, est ce que ça peut venir d'easyphp ? j'ai la dernière version 1.7


Message édité par Scarf3ss3 le 29-09-2004 à 15:58:41
mood
Publicité
Posté le 29-09-2004 à 15:55:46  profilanswer
 

n°860146
kalex
Posté le 29-09-2004 à 15:59:25  profilanswer
 

Tu as vérifié à l'oeil si les résultats sont les mêmes ?
Genre :

Code :
  1. echo $contact->mdp.'<br />'.md5($mdp);

n°860147
Masenko
Posté le 29-09-2004 à 16:01:46  profilanswer
 

Je pense pas que ça viennt de easyphp mais si y a quelques chose que je te conseil c'est bien d'installer apache2 php5 ou 4 et mysql manuelement.
 
Sinon tu peux filer ton code un peu plus complet ?

n°860157
Scarf3ss3
Posté le 29-09-2004 à 16:06:50  profilanswer
 

kalex a écrit :

Tu as vérifié à l'oeil si les résultats sont les mêmes ?
Genre :

Code :
  1. echo $contact->mdp.'<br />'.md5($mdp);




putain je t'aime !!!!  :love: j'avais pas pensé à faire ça....
et effectivement le probleme vient de là il manque les 2 derniers caracteres pour md5($mdp) :
 
2c020a36498c6e57e21cfdc06df190
2c020a36498c6e57e21cfdc06df19061
 
ce qui correspond au champs password. par contre je comprends pas puisque en taille limite j'ai mis 30 et dans ma base le pass est stoché dans un VARCHAR (30) alors pourquoi il la variable $mdp ne veut pas des 2 derniers caracteres ?
 
sinon un grand merci !

n°860160
Scarf3ss3
Posté le 29-09-2004 à 16:08:25  profilanswer
 

scarf3ss3 a écrit :

putain je t'aime !!!!  :love: j'avais pas pensé à faire ça....
et effectivement le probleme vient de là il manque les 2 derniers caracteres pour md5($mdp) :
 
2c020a36498c6e57e21cfdc06df190
2c020a36498c6e57e21cfdc06df19061
 
ce qui correspond au champs password. par contre je comprends pas puisque en taille limite j'ai mis 30 et dans ma base le pass est stoché dans un VARCHAR (30) alors pourquoi il la variable $mdp ne veut pas des 2 derniers caracteres ?
 
sinon un grand merci !


pardon je me suis planté c'est le champs de ma base qui n'accepte pas mes 2 derniers caracteres  :pt1cable:

n°860174
Scarf3ss3
Posté le 29-09-2004 à 16:14:59  profilanswer
 

Merci kalex !
 
bon ça marche ! et effectivement j'étais vraiment trop con !!!
il suffisait donc de mettre un VARCHAR (60) pour ma table où il y a le mdp car un VARCHAR (30) n'etais pas assez long. J'ai honte de moi, je m'autoflagelle.
 
Merci encore  :hello:
 
 
edit : au fait vous pensez que (60) suffit ??? car les visiteurs peuvent saisir un pass jusqu'à 30 caractères


Message édité par Scarf3ss3 le 29-09-2004 à 16:16:19
n°860177
kalex
Posté le 29-09-2004 à 16:17:30  profilanswer
 

c'était pas grand-chose. :o

n°860179
jagstang
Pa Capona ಠ_ಠ
Posté le 29-09-2004 à 16:18:29  profilanswer
 

scarf3ss3 a écrit :

Merci kalex !
 
bon ça marche ! et effectivement j'étais vraiment trop con !!!
il suffisait donc de mettre un VARCHAR (60) pour ma table où il y a le mdp car un VARCHAR (30) n'etais pas assez long. J'ai honte de moi, je m'autoflagelle.
 
Merci encore  :hello:
 
 
edit : au fait vous pensez que (60) suffit ??? car les visiteurs peuvent saisir un pass jusqu'à 30 caractères


 
32 suffit dans TOUS les cas. pour un mot de passe de 1 ou de 1000 caractères


Message édité par jagstang le 29-09-2004 à 16:18:45

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°860182
kalex
Posté le 29-09-2004 à 16:19:54  profilanswer
 

Et même pour un fichier de plusieurs Go. ;)

n°860184
jagstang
Pa Capona ಠ_ಠ
Posté le 29-09-2004 à 16:21:10  profilanswer
 

suffit de savoir la définition d'un hachage


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°860185
KangOl
Profil : pointeur
Posté le 29-09-2004 à 16:21:41  profilanswer
 

et pourquoi un varchar pour un password ??

n°860193
Scarf3ss3
Posté le 29-09-2004 à 16:29:26  profilanswer
 

KangOl a écrit :

et pourquoi un varchar pour un password ??


pourquoi tu aurais mis quoi ?

n°860194
sircam
I Like Trains
Posté le 29-09-2004 à 16:29:34  profilanswer
 

KangOl a écrit :

et pourquoi un varchar pour un password ??


Sans doute parce qu'à la base il n'a pas pensé au hashing.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°860195
Masenko
Posté le 29-09-2004 à 16:30:27  profilanswer
 

Moi aussi j'utilise un varchar(32) c'est très bien un varchar...

n°860197
Scarf3ss3
Posté le 29-09-2004 à 16:31:02  profilanswer
 

sircam a écrit :

Sans doute parce qu'à la base il n'a pas pensé au hashing.


c'est quoi le mieu pour du hashing ? blob ?

n°860220
sircam
I Like Trains
Posté le 29-09-2004 à 16:45:58  profilanswer
 

scarf3ss3 a écrit :

c'est quoi le mieu pour du hashing ? blob ?


[:alph-one]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°860225
kalex
Posté le 29-09-2004 à 16:49:37  profilanswer
 

masenko a écrit :

Moi aussi j'utilise un varchar(32) c'est très bien un varchar...

CHAR(32), pour un résultat qui fait toujours 32 caractères, c'est bien mieux.
 
Explications :
http://dev.mysql.com/doc/mysql/fr/CHAR.html

n°860226
jagstang
Pa Capona ಠ_ಠ
Posté le 29-09-2004 à 16:50:02  profilanswer
 

char [:jagstang]
 
 
[:benou_grilled]


Message édité par jagstang le 29-09-2004 à 16:50:25

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°860230
jagstang
Pa Capona ಠ_ಠ
Posté le 29-09-2004 à 16:50:53  profilanswer
 

scarf3ss3 a écrit :

c'est quoi le mieu pour du hashing ? blob ?


tu sors ça au hasard ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°860233
KangOl
Profil : pointeur
Posté le 29-09-2004 à 16:51:23  profilanswer
 

bha oui, un password ne change que tres rarement...

n°860235
jagstang
Pa Capona ಠ_ಠ
Posté le 29-09-2004 à 16:52:06  profilanswer
 

oui mais sa longueur ne changera JAMAIS


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°860236
Scarf3ss3
Posté le 29-09-2004 à 16:53:12  profilanswer
 

JagStang a écrit :

tu sors ça au hasard ?


oui [:amandine75011]
 
 
 
 
 
 
 
 
[:anauff]

n°860245
sircam
I Like Trains
Posté le 29-09-2004 à 16:59:04  profilanswer
 

Dans la série 'je ne comprends pas vraiment ce que je fais mais je bidouille', le BLOB pour un champs de longueur fixe 32.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°860248
Scarf3ss3
Posté le 29-09-2004 à 17:01:47  profilanswer
 

sircam a écrit :

Dans la série 'je ne comprends pas vraiment ce que je fais mais je bidouille', le BLOB pour un champs de longueur fixe 32.


si je sais que blob c'est pour stockés des bits donc des fichiers  :o

n°860254
sircam
I Like Trains
Posté le 29-09-2004 à 17:10:07  profilanswer
 

scarf3ss3 a écrit :

si je sais que blob c'est pour stockés des bits donc des fichiers  :o


stocker  [:moundir]  
 
Donc ne réponds pas n'importe quoi, petit comique.  [:crosscrusher]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°860259
kalex
Posté le 29-09-2004 à 17:13:53  profilanswer
 

Tiens c'est une idée ça, un mot de passe sous forme de fichier (une image par exemple). Cool, comme dans James Bond ! [:sb62]

n°860265
Scarf3ss3
Posté le 29-09-2004 à 17:21:33  profilanswer
 

kalex a écrit :

Tiens c'est une idée ça, un mot de passe sous forme de fichier (une image par exemple). Cool, comme dans James Bond ! [:sb62]


Je sais pas si tu plaisantes mais c'est possible !  

n°860268
kalex
Posté le 29-09-2004 à 17:23:42  profilanswer
 

Bien sur. Mais y a rien de plus con pour un site Web. :o

n°860286
Scarf3ss3
Posté le 29-09-2004 à 17:53:38  profilanswer
 

kalex a écrit :

Bien sur. Mais y a rien de plus con pour un site Web. :o


si ça ferai classe  :sol:

mood
Publicité
Posté le   profilanswer
 


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

  probleme avec md5 et ma session [RESOLU]

 

Sujets relatifs
Probleme balise peut etre balise span sous mozilla et pas sous ieaffichage d'un count j'en peut plus [RESOLU]
problème compteur de visitesProblème avec download forcé
Problème d'image non clickable sous Mozilla[D8] Recup les params(nom/type) d'1 proc stockée Oracle [RESOLU]
Win32 API : Lire la charge CPU [Résolu][RESOLU] Struts n'ajoute pas .do dans le chemin de l'action du form
prologue XML ou pas ? (probleme avec IE 6)[HTML sur IIS6] Problème d'images se rechargant à chaque fois
Plus de sujets relatifs à : probleme avec md5 et ma session [RESOLU]


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