probleme pwd verification sur bdd

Eléphant du PHP | 101 Messages

04 juin 2005, 18:25

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.

Mammouth du PHP | 19672 Messages

04 juin 2005, 18:33

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 :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

04 juin 2005, 19:07

merci cyrano je vai essayer tte a lheur la jfé des gateaux

ViPHP
fab
ViPHP | 2657 Messages

04 juin 2005, 19:56

tu nous en gardes un bout ? :p

Eléphant du PHP | 101 Messages

04 juin 2005, 20:31

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';
}
?>

Eléphant du PHP | 101 Messages

04 juin 2005, 20:34

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

Mammouth du PHP | 19672 Messages

04 juin 2005, 20:43

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 *...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

04 juin 2005, 21:22

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

Mammouth du PHP | 19672 Messages

04 juin 2005, 21:23

Ha ben oui, j'avais la tête ailleurs ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

04 juin 2005, 21:29

encor merci consacré un peut de ton temps

ViPHP
pjl
ViPHP | 2119 Messages

04 juin 2005, 22:17

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.

Eléphant du PHP | 101 Messages

04 juin 2005, 23:34

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.

ViPHP
pjl
ViPHP | 2119 Messages

05 juin 2005, 08:12

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.

Eléphant du PHP | 101 Messages

05 juin 2005, 12:52

merci pjl, je vais mi mettre