|
neo_machine 598
| Posté : 20-08-2004 03:21
Bonjour à tous,
Pour un module sur mon site, j'ai besoin de valider certaines info par formulaire avec le uname et le pass de la table users puis j'identifie le post avec l'adresse mail de l'user que je passe en variable.
Le pass en clair sans crypt cela fonctionne bien mais avec le md5 j'ai des soucis avec un formulaire.
Il compare un pass non crypté avec celui du pass de la table users et ca fonctionne pas, non pas du tout.
Je fais :
le formulaire...
!$rime = mysql_query("SELECT *,email as hepa from users WHERE uname='$uname' AND pass='$pass'") or die(mysql_error());!
!$result = mysql_num_rows($rime);!
... un peu de html ...
!$result_email = mysql_result($rime,0,hepa);!
Une ame charitable pour m'aider à valider ce pass ?
Merci d'avance. |  Profil www
|
|
zyegfryed 2308
| Posté : 20-08-2004 08:44
Normal que celà ne marche pas, tu ne peux comparer que ce qui est comparable : 2 pass cryptés, ou 2 pass non cryptés...
Ce qu'il faut que tu fasses : cryptes le pass que l'on te donne dans ton formulaire, et compares ensuite la signature générée avec celui qui est dans ta base. (C'est sur ce principe que fonctionne NPDS, et beaucoup d'autres systèmes, si je ne m'abuse...) |  Profil
|
|
developpeur 24581
| Posté : 20-08-2004 10:53
je ferais plustot :
"SELECT email, password as hepa from users WHERE uname='$uname'"
si md5(passord du formulaire)=password de la base
alors ...
sinon die
|  Profil E-mail www
|
|
neo_machine 598
| Posté : 22-08-2004 03:11
Désolé mais cela concerne les users et pas l'admin ; donc c'est pas md5 mais plutôt la fonction
!makePass()!. Enfin il me semble ?
Je l'ai reprise dans mon scrit.
Et bien je n'y arrive pas.
!function makePass()!
puis un formulaire.
- une zone 'user_name'
- une zone 'password'
Je fais :
!$password=makePass();!
!$password=crypt($makepass,$password);!
!$rime = mysql_query("SELECT *,email as hepa from users WHERE uname='$user_name' AND pass='$password'") or die(mysql_error());!
!$result = mysql_num_rows($rime);!
!if($result<1)!
NON
sinon OUI
Quelqu'un pour m'aider SVP.
zyegfryed merci d'avoir confirmé ce que je savais et pour lequel je sollicite une assistance !!! |  Profil www
|
|
snipe 2450
| Posté : 22-08-2004 10:08
non non neo il faut bien que tu passe par md5()
makepassword c pour generer un nouveau mot de passe allors tu est sure que ca sera toujours diferant a part un maxi enorme giga coup de bolle |  Profil E-mail
|
|
neo_machine 598
| Posté : 22-08-2004 22:28
Merci de ta réponse cela m'a mis sur la voie.
Tu as raison pour le makePass.
La fonction pour ouvrir les pass users c'est bien : !$mot_de_passe=crypt($pass_x,$pass_y);!
J'ai construi ma routine, testé et cela fonctionne, que le systèm de crypt soit ouvert (Unix/Linux) ou fermé (Windows) var déclaré dans config.php.
Petite info : le crypt ne fonctionne que sur les 8 premiers carractères saisies maxi.
Si votre mot de passe contiend plus de 8 carractères seul les 8 premiers seront pris pour le crypt.
Je reprend mon dev. Lol.
@+ sur le forum snipe.
|  Profil www
|
|