PHP-valider password (entre bd et formulaire)

Fermé
D_d - 16 juil. 2003 à 22:24
Marco_src02 Messages postés 72 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 3 juillet 2004 - 17 juil. 2003 à 20:37
BONJOUR!
J'ai une super énigme qui me chicotte a fond! Jai une base de donne ou il y a le nom de lusager et son mot de passe...
par formulaire sur un autre page je prend son nom et son mot de passe... je selectionne ma table ou je met un WHERE pour quil ne prenne que la ligne qui comporte le nom de lusager mis dnas le formulaire (cest la cle primaire) puis je veux comparer le mot de passe de la base de donne au mot de passe du formulaire... sauf qu je narrive pas a le faire! je suis boucher! +_+ si les mt de passe sont pareil alors il arrive qqc sinon il arrive qqc dautre.... merci de me repondre!!!
Jme pette tellement la tete contre le mur presentement :paf !!!!
voici le code de ma page


<?php
$usager = $_POST['usager'] ;
$mdp= $_POST['mdp'] ;
$userfile= $_POST['userfile'] ;

if (empty($usager) || empty($mdp)){ // je ne peux pas placer le USERFILE sans que ca chie!
header( "Location: http://www.mapage.com/dd/ftp/formulaire.php" );
}
?>
<html>
<head>
<title>validation 3</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table border="1" width="20%">
<?php
//MySQL Variables. Edit where necessary
$host = "monsite.com";
$login_name = "D_d";
$password = "poisson";

MySQL_connect("$host","$login_name","$password");

MySQL_select_db("maDataBase") or die("Could not select database");

$query = "SELECT * FROM usager_ftp WHERE idUsager='$usager'";
$result = MySQL_query($query);

echo ($rows = mySQL_fetch_array($result));
MySQL_close()

?>
</table>
</body>
</html>



merci gros davance encore!!!!


D_d.
"Ce n'est pas moi qui est fou c'est vous qui ne l'êtes pas!"
A voir également:

8 réponses

Re D_d,

a priori tu as un probleme dans l'utilisation du resultat: ta requete (le SELECT) te renvoie un tuple de (au moins) 2 attributs. Je m'explique: ta table contient (a ce que je sache) les attributs "login" et "password". Donc quand tu fais un SELECT *, il te renvoie les 2. Donc ton mot de passe doit etre dans $row[1] et ton login dans $row[0].

Par ailleurs tu ne te sers pas du login donc e pense que tu devrais remplacer ta requete par:


SELECT mdp FROM usager_ftp WHERE idUsager='$usager'


pour ne recuperer que le mot de passe correspondant au login entré.
J'ai considere dans cete exemple que le nom du champ mot de passe de ta table etait "mdp".
0
jai trouver ca a qq part....


$query = "SELECT * FROM usager_ftp WHERE idUsager='$usager' AND mdp='$mdp'";
$result = MySQL_query($query);

$login_check = mySQL_num_rows($result);

if($login_check > 0){
while( $row = mySQL_fetch_array($result) ){
echo ("<b>Bienvenue $row['idUsager']!</b>\n");
}
} else {
echo ("You could not be logged in! Either the username and password do not match<br /> Please try again!<br />\n");
}


SAUF QUE, la condition a la fin chie comme tout le reste (car si je le met en commentaire ma page saffiche mais sil est pas mi en commentaire la page saffiche pas! :-S ), tk, je vais essayer aussi de ta maniere!

D_d.
0
SAUF QUE, la condition a la fin chie comme tout le reste

Peux tu préciser comment ca chie? Est ce que tu passes dans le else (affichage du "you could not be logged in")? Est ce que tu obtiens un message d'erreur? Si oui, lequel?

Eddy
0
Marco_src02 Messages postés 72 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 3 juillet 2004 6
17 juil. 2003 à 12:58
J'utilise cette methode(qui n'est pas forcement bonne):
je compte le nombre de tuple valide ayant user et pass dans la meme ligne:
$res=mysql_query("SELECT COUNT(*) FROM user WHERE login = '$user' AND pwd = PASSWORD('$pwd')");

list($pwd)=mysql_fetch_row($res);

if ($pwd==1)//il ne peut y avoir qu'un seul utilisateur avec ce pass et ce login
{header( "Location: http://www.mapage.com/dd/ftp/formulaire.php" );}
else
{echo "le nom d'utilisateur ou le pass ne sont pas bon";}


Chez moi cela fonctionne nickel
@++
0
le if($logincheck>0){ .... ben quand je le met la page ne saffiche pas.... puis quand je le met en commentaire tout va bien (bin a par biensur la condition la qui ne sapplique pas!) c la qu'il est le bobo mais je ne sais pas comment je peut voir mes erreurs! ca fais quand meme juste 3 jours que japprend le php....gne! Ya tu un moyen de savoir nos erreurs comme par exemple en asp, je peu savoir mes erreurs par IE a la ligne pres et au caractere pres. Ca existe tu en php? surment???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MERCI MARCO CA FONCTIONNE A MERVEILLE!!! YAAH!! :-D
0
yer ca marche sauf que la je voudrais afficher mon message derreur a un place specifique dans ma page....
est ce que je devrais faire une redirection vers une page erreur et un page login? ou ya un moyen de faire laffichage sans que ca bug??


<?php
$usager = $_POST['usager'] ;
$mdp= $_POST['mdp'] ;
$userfile= $_POST['userfile'] ;

if (empty($usager) || empty($mdp)){ //
header( "Location: http://www.mapage.com/dd/ftp/formulaire.php" );
exit();
}


//MySQL Variables. Edit where necessary
$host = "mapage.com";
$login_name = "dd";
$password = "molly";

//Connecting to MYSQL
MySQL_connect("$host","$login_name","$password");

//Select the database we want to use
MySQL_select_db("usager") or die("Could not select database");

$res=mysql_query("SELECT COUNT(*) FROM usager_ftp WHERE idUsager = '$usager' AND mdp = '$mdp'");
list($pwd)=mysql_fetch_row($res);

if ($pwd==1)//il ne peut y avoir qu'un seul utilisateur avec ce pass et ce login
//{header( "Location: http://www.mapage.com/dd/ftp/formulaire.php" );
$reponse= "le nom d'utilisateur est le bon! bienvenue!";//ICI JAI MIS LE TEXTE DANS UNE VARIABLE POUR FAIRE AFFICHER LA VARIABLES PLUS LOIN DANS LA PAGE...
exit();}
else
{$reponse= "le nom d'utilisateur ou le pass ne sont pas bon";}// MEME CHOSE ICI!

MySQL_close()
?>
<html>
<head>
<title>validation 3</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?PHP

//EST CE QUE ON POURRAIT FAIRE GENRE:
// ECHO("$REPONSE");
//pcq c'est cela que j'ai essayer de faire et la variable que jai créé bin on dirait quil narrive pas a la gober puis sil ne veut pas la gober la page ne saffiche pas.... qqn aurait une idée???
?>
</body>
</html>


ca serait quoi la meilleur des solutions???
(marrache les cheveux encore!!! lol)
0
stop! j'ai trouver! merci quand meme!!! ;-)

D_d.
0
Marco_src02 Messages postés 72 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 3 juillet 2004 6
17 juil. 2003 à 20:37
de nada, c avec plaisir ;-)
0