problème de login causé par PASSWORD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème de login causé par PASSWORD

par Cyrano » 22 janv. 2006, 11:21

...j'ai remplacé 'VARCHAR(16)' par 'VARCHAR(128)' et rien n'y fait, le mot de passe que je saisis pour me logger ne correspond pas à celui qui est stocké dans la bdd....
Attention, remplacer le type ne suffit pas: il faut renouveller les données enregistrées. Les données tronquées avant le changement de TYPE ne seront pas remis à leur longueur d'origine. Il faut donc à nouveau les enregistrer.

par natasgfx » 22 janv. 2006, 02:04

dit une question bete dans ton formulaire tu na pas limité la talle du pw a 16 ?

par supernova » 18 janv. 2006, 12:04

Désolé de répondre aussi tardivement.

j'ai remplacé 'VARCHAR(16)' par 'VARCHAR(128)' et rien n'y fait, le mot de passe que je saisis pour me logger ne correspond pas à celui qui est stocké dans la bdd.

:cry:

par Cyrano » 18 janv. 2006, 00:05

Si tu changes le type en CHAR, il ne faut pas oublier de mettre une longueur de la même manière que tu emts VARCHAR(16)

Ceci dit, 16, c'est un peu court et probablement la cause du problème: si la taille du champ est trop courte, la valeur envoyée qui est trop longue sera tronquée: résultat sur un mot de passelca validation en pourra jamais fonctionner. Pour un mot de passe crypté, utilise au minimum un VARCHAR (64) ou encore dans certains cas avec d'autres formes de chiffrement un type BLOB.

par supernova » 17 janv. 2006, 23:58

merci pour ces informations.

je débute en sql donc toute remarque m'est utile.
La colonne où est stockée le mot de passe est de type:

Code : Tout sélectionner

VARCHAR( 16 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
en lisant directement le password dans phpmyadmin, j'obtiens:
'2f37d4566b7ffec8'.

je ne sais pas si cela correspond au type PASSWORD

par ailleurs, aucun message d'erreur ne m'est retourné après avoir supprimé le '@'.


Sinon, je viens de constater que dans mon livre de cours il est écrit que le champ 'password' doit etre de type 'CHAR' et non 'VARCHAR'.
Or lorsque je modifie le type en 'CHAR' dans phpmyadmin, la mise à jour ne se fait pas et le type reste 'VARCHAR'.
Ceci peut il être la cause du problème?

par Cyrano » 17 janv. 2006, 23:21

Est-ce que la colonne où est stocké le mot de passe est bien du type PASSWORD ?

D'autre part pour débugguer, il faut éviter d'utiliser le "@" devant les fonctions : masquer les erreurs ne t'aidera pas à corriger.

problème de login causé par PASSWORD

par supernova » 17 janv. 2006, 20:49

Bonjour,

J'ai créé une table 'utilisateurs' contenant les données relatives aux différents membres (nom, prénom, mot de passe).

Cette table est remplie à l'aide du code suivant:
$rq="INSERT INTO utilisateurs".
"(nom_utilisateur, prenom, nom, email, mot_de_passe, date_enreg)".
"VALUES('$nu','$pr','$no','$em',PASSWORD('$mp'),NOW())";
$result=@mysql_query($rq);
je contrôle que ma table a bien été remplie dans phpmyadmin

ensuite, pour qu'un utilisateur puisse se logger, j'utilise ce code:
$rq="SELECT id_utilisateur, prenom FROM utilisateurs WHERE nom_utilisateur='$u' AND mot_de_passe=PASSWORD('$mp')";
$result=@mysql_query($rq);
$ligne=mysql_fetch_array($result, MYSQL_NUM);
et je ne peux pas me logger car la condition portant sur le password m'en empèche


Quelqu'un pourrait il m'expliquer quelle est la cause de ce problème?

J'espère avoir donné assez d'informations, sinon n'hésitez pas à me solliciter pour vous apporter les éléments dont vous avez besoin.

merci pour vos réponses.