Page 1 sur 1
probleme pwd verification sur bdd
Posté : 04 juin 2005, 18:25
par brani
bonjour
voila j'ai une section membre, on entre le login mots de pass
dans le formulaire pui le script php vérifie dans la base de donnees
si le login pass existe sinon get out, mon script marche mai il vérifie que par
rapport a la premiere entré (id=1) login pass de ma table admin ca veut dire que si je rentre un autre login pass enregistré sur les autre entré (id 2, 3, 4 ect..) ca ne marche pas ,
voici mon script
<form method="post">
login: <input type="text" name="login">
mots de pass :<input type="text" name="pass">
<input type="submit" value="crypter">
</form>
<?
if (isset($_POST['login']) and isset ($_POST['pass'])) // on verifie si les vriable existe
{
$login = $_POST['login'];
$mpass = $_POST['pass'];
}
else // sinon on créer des variable vide
{
$login = "";
$mpass = "";
}
mysql_connect('localhost', 'root', ''); // bla bla bla
mysql_select_db('bdd'); // bla bla bla
$reponse = mysql_query("SELECT *FROM admin");
$donnees = mysql_fetch_array($reponse);
$pass = $donnees['pass']; // on recupere les mots de passe
$user = $donnees['user']; // et les login
if ($login == $user AND $mpass == $pass) // on verifie si le login pass entré sont égale a un des login pass contenue dans la bdd
{
echo ' login pass correct';
}
else {
echo 'mauvais login ou mots de passe';
}
?>
excuser moi jsui vraiment pas douer pour les commentaire.
Posté : 04 juin 2005, 18:33
par Cyrano
Pas grave, on va simplifier
<form method="post">
login: <input type="text" name="login">
mots de pass :<input type="text" name="pass">
<input type="submit" value="crypter">
</form>
<?
/* On initialise les variable login et mot de passe */
$login = isset($_POST['login'])?$_POST['login']:"";
$mpass = isset($_POST['pass'])?$_POST['pass']:"";
mysql_connect('localhost', 'root', ''); // bla bla bla
mysql_select_db('bdd'); // bla bla bla
/* On établit la requête pour savoir si on trouve une ligne avec la combinaison login/mot de passe */
$reponse = mysql_query("SELECT COUNT(*) FROM admin WHERE login = '". $login ."' AND pass = '". $pass ."'");
$donnees = mysql_result($reponse,0);
// on verifie s'il y a un résultat
if ($reponse == 1)
{
echo ' login pass correct';
}
else
{
echo 'mauvais login ou mots de passe';
}
?>
Si il y a quelque chose que tu ne comprends pas, reviens avec la question, mais ceci devrait fonctionner nettement mieux

Posté : 04 juin 2005, 19:07
par brani
merci cyrano je vai essayer tte a lheur la jfé des gateaux
Posté : 04 juin 2005, 19:56
par fab
tu nous en gardes un bout ? :p
Posté : 04 juin 2005, 20:31
par brani
re salut g essayer ta methode et ca ne marche pas
ya rien qui se passe
<form method="post">
login: <input type="text" name="login">
mots de pass :<input type="text" name="pass">
<input type="submit" value="crypter">
</form>
<?
/* On initialise les variable login et mot de passe */
$login = isset($_POST['login'])?$_POST['login']:"";
$mpass = isset($_POST['pass'])?$_POST['pass']:"";
mysql_connect('localhost', 'root', ''); // bla bla bla
mysql_select_db('bdd'); // bla bla bla
/* On établit la requête pour savoir si on trouve une ligne avec la combinaison login/mot de passe */
$reponse = mysql_query("SELECT COUNT(*) FROM admin WHERE login = '". $login ."' AND pass = '". $pass ."'");
$donnees = mysql_result($reponse,0);
// on verifie s'il y a un résultat
if ($reponse == 1)
{
echo ' login pass correct';
}
else
{
echo 'mauvais login ou mots de passe';
}
?>
Posté : 04 juin 2005, 20:34
par brani
g rectifier cette ligne
$reponse = mysql_query("SELECT COUNT(*) FROM admin WHERE login = '". $login ."' AND pass = '". $pass
par
$reponse = mysql_query("SELECT COUNT(*) FROM admin WHERE login = '". $login ."' AND pass = '". $mpass // <== la
mais rien tjr
Posté : 04 juin 2005, 20:43
par Cyrano
J'ai peut-être pas mis les bons noms de champs, vérifie, c'est peut-être ça... tu ne les précises pas dans le script de départ en faisant un SELECT *...
Posté : 04 juin 2005, 21:22
par brani
yavai un pti probeleme ca vouler pas marcher
lerreur vien de
$donnees = mysql_result($reponse,0);
// on verifie s'il y a un résultat
if ($reponse == 1)
ca c bon, la ca marche
$donnees = mysql_result($reponse,0);
// on verifie s'il y a un résultat
if ($donnees == 1)
merci beaucoup cyrano
Posté : 04 juin 2005, 21:23
par Cyrano
Ha ben oui, j'avais la tête ailleurs

Posté : 04 juin 2005, 21:29
par brani
encor merci consacré un peut de ton temps
Posté : 04 juin 2005, 22:17
par pjl
Désolé mais ce code ne me plait pas du tout.
1. le mot de passe n'est pas crypté dans la base de données, ce qui signifie que toute personne ayant accès à la base de données aura accès aux mots de passe ;
2. s'il y a 2 ensembles ( ou plus) mot de passe/login identiques, la réponse sera mauvais login..........
3. les variables devant être utilisées dans la requête ne sont pas vérifiées, c'est un très gros trou de sécurité ;
4. je n'aime pas cette facon de mettre la requête directement dans le mysql_query. Je préfère que la requete soit stockée dans une variable à part. Celà permet de l'afficher quand on veut sans devoir toucher au code.
Posté : 04 juin 2005, 23:34
par brani
salut pjl , tu sais je suis debutant et j'apprend ce que je fait avec le script
se sont que des test et pour mamuser aussi, parcontre ce que tu me dit la
m'interesse beaucoup, si tu peut retaper le script en incluant ce que tu dit avec des commentaire ca serai gentille de ta part avec des explication ou si tu conait un tutoriale sur ca merci de m'indiquer le lien.
Posté : 05 juin 2005, 08:12
par pjl
J'ai vu que tu es débutant. C'est pour celà que je t'ai donné un certain nombre d'élèments de réflexion te permettant d'aller plus loin si tu le désires.
Retaper le script ne servirait à rien.
Tu aurait certe un script qui marche mais ce n'est pas pour autant que tu auras progressé.
Déjà, si tu as bien compris la logique de ton script, tu dois être capable de corriger les points 2 et 4.
Pour les points 1 et 3, je te laisse chercher. Il y a pas mal d'élèments sur ce forum pour t'aider.
Si la nouvelle version de ton script coince, reviens-nous voir avec elle.
Bon courage.
Posté : 05 juin 2005, 12:52
par brani
merci pjl, je vais mi mettre