Condition IF ne fonctionne pas. - PHP - Programmation
Marsh Posté le 21-03-2010 à 14:28:12
ligne 40, remplace && par ||
Tu testes sur login incorrect et mot de passe incorrect. Tu dois tester sur login incorrect ou mot de passe incorrect.
Marsh Posté le 21-03-2010 à 14:58:51
Non justement
Je veux que le login ET le mot de passe soit valide.
Si je met un OU l'utlisateur peut rentre un login valide et un mot de passe bidon et il rentrera dans la page d'administration
Marsh Posté le 21-03-2010 à 15:23:48
C'est toi qui a tort.
Relis ton test : actuellement tu ne passes dans le echo "Le login ou le mot de passe est incorect."; que si le mdp ET le login sont incorrects.
Tu veux n'y passer que si l'un OU l'autre est incorrect.
Et réciproquement tu ne veux pas y passer si l'un ET l'autre sont corrects, ce qui t'a induit en erreur. Je te suggère de lire un petit cours sur les opérateurs booléens, et éventuellement le theoreme de morgan qui a plus ou moins trait à ce genre de choses.
Marsh Posté le 21-03-2010 à 15:26:48
Autre chose : ton script est vulnérable à l'injection SQL, on peut très très facilement contourner ton authentification. Tu dois protéger tes chaînes de caractères avant de les passer aux requêtes (mets injection sql php dans google pr en savoir +).
Marsh Posté le 21-03-2010 à 15:32:26
Autant pour moi.
Un grand merci a vous ça fonctionne.
Je vais me renseigné pour l'injection sql
Marsh Posté le 21-03-2010 à 16:22:14
En faisant ça suis-je protegé des injections SQL ?
Code :
|
Marsh Posté le 21-03-2010 à 17:52:59
Pourquoi pas bon ? Utiliser mysql_real_escape_string est bien la chose à faire (l'une des nombreuses possibilités en tout cas)
Marsh Posté le 21-03-2010 à 18:58:41
Parce que j'ai des message d'erreur
Code :
|
Marsh Posté le 21-03-2010 à 19:12:07
La connexion à la bdd doit avoir été ouverte avant de pouvoir appeler mysql_real_escape_string. En mettant tes messages d'erreur dans google tu l'aurais vu très vite !
Marsh Posté le 21-03-2010 à 14:15:41
Bonjour.
Pour un projet de GSI je suis en train de codé un site.
Je bloque sur une condition IF qui ne fonctionne pas. En effet je voudrais verifier si le login et le mot de passe entrés dans le formulaire correspondent au login / mot de passe dans la base de données.
Voici mon script :
Si je met un bon login mais un mauvais mot de passe j'ai acces a la futur page d'admin. Par contre si je me trompe de login j'ai bien le message d'erreur attendu.
J'ai l'impresion que le script verifie l'exactitude uniquement sur le login et non le mot de passe.
Quand je fait par exemple
J'ai bien la reponse : Les mot de passe sont identique ...
Je ne comprend pas mon erreur.
Merci