Php : recherche dans la table impossible
Résolu/Fermé
tonguim
Messages postés
47
Date d'inscription
mercredi 7 septembre 2005
Statut
Membre
Dernière intervention
27 février 2015
-
1 mai 2006 à 18:56
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 4 mai 2006 à 17:53
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 4 mai 2006 à 17:53
A voir également:
- Php : recherche dans la table impossible
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Href php ✓ - Forum PHP
- Bouton php - Forum PHP
- Echo image php ✓ - Forum PHP
6 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
2 mai 2006 à 01:07
2 mai 2006 à 01:07
Ici:
"=" c'est l'affectation. "==" c'est la comparaison.
Si tu fais if($nu=$ligne['login']) alors c'est l'equivalent de :
Or toi, ce que tu veux faire ce n'est pas rentrer la valeur de $ligne['login'] dans $nu mais mais comparer ces deux valeurs.
Un petit conseil pour optimiser ton code.
Un select sans condition, ça va faire travailler ta base de données, la bande passante du serveur et ta page Php pour rien car tu demandes tout ce qu'il ya dans une table.
Prends plutôt:
if($nu=$ligne['login'] && $mdp=$ligne['motdepasse'])
"=" c'est l'affectation. "==" c'est la comparaison.
Si tu fais if($nu=$ligne['login']) alors c'est l'equivalent de :
$nu=$ligne['login']; if($nu){ /*equivalent de Si $nu !=0 ou $nu !='' ou $nu !=NULL ou $nu!=False */ .... }
Or toi, ce que tu veux faire ce n'est pas rentrer la valeur de $ligne['login'] dans $nu mais mais comparer ces deux valeurs.
Un petit conseil pour optimiser ton code.
Un select sans condition, ça va faire travailler ta base de données, la bande passante du serveur et ta page Php pour rien car tu demandes tout ce qu'il ya dans une table.
Prends plutôt:
<?php $connection=mysql_connect("localhost", "root", ""); if($connection) { $bd=mysql_select_db("aigemephp"); if($bd) { $nu=$_POST['zoneNom']; $mdp=$_POST['zoneMdp']; $requete="select * from authentification WHERE login='$nu' AND motdepasse='$mdp'; $resultat=mysql_query($requete); if(mysql_num_rows($resultat) ){ //Il ya un résultat, donc le login et le mot de passe sont bons }
merci kylian; le programme marche bien maintenant; voici le bon code:
<?php $connection=mysql_connect("localhost", "root", ""); if($connection) { $bd=mysql_select_db("aigemephp"); if($bd) { $nu=$_POST['zoneNom']; $mdp=$_POST['zoneMdp']; $requete="select * from authentification where nom='$nu' AND motdepasse='$mdp'"; $resultat=mysql_query($requete); if($resultat) { echo ("password and login found"); } else echo ("password and login not found"); } else die (mysql_error()); } else die (mysql_error()); ?>
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
2 mai 2006 à 22:20
2 mai 2006 à 22:20
Désolé, mais ya un bug dans ton code ...
mysql_query ne retourne pas directement un résultat. dans le cas d'un select mysql_query va retourner une ressource de requete sql (à priori, même si cette requete ne retourne rien). Et une ressource c'est différent de false, Null, 0 etc...).
Utilise mysql_num_rows pour faire ton test après mysql_query. Avec mysql_num_rows, tu as le nombre de lignes retournées pour ton résultat.
Si c'est 0, c'est qu'il n'y a pas de resultat.
mysql_query ne retourne pas directement un résultat. dans le cas d'un select mysql_query va retourner une ressource de requete sql (à priori, même si cette requete ne retourne rien). Et une ressource c'est différent de false, Null, 0 etc...).
Utilise mysql_num_rows pour faire ton test après mysql_query. Avec mysql_num_rows, tu as le nombre de lignes retournées pour ton résultat.
Si c'est 0, c'est qu'il n'y a pas de resultat.
Merci kylian pour ton aide, le bug est corrigé et le programme marche bien.
<?php $connection=mysql_connect("localhost", "root", ""); if($connection) { $bd=mysql_select_db("aigemephp"); if($bd) { $nu=$_POST['zoneNom']; $mdp=$_POST['zoneMdp']; $requete="select * from authentification where nom='$nu' AND motdepasse='$mdp'"; $resultat=mysql_query($requete); if(mysql_num_rows($resultat)) { echo ("Bienvenue. Connexion réussie !"); } else echo ("<b>Echec de la connexion</b>. <a href=\"exercice1html.html\">Cliquez ici pour revenir au formulaire</a>"); } else die (mysql_error()); } else die (mysql_error()); ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
3 mai 2006 à 21:15
3 mai 2006 à 21:15
Good! :-)
spamware
Messages postés
31
Date d'inscription
jeudi 13 avril 2006
Statut
Membre
Dernière intervention
23 mai 2007
3
3 mai 2006 à 21:52
3 mai 2006 à 21:52
je vois que vous ete nombreux mais personne ne repond a mon mess je , je peux meme pas compter sur vous
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
3 mai 2006 à 22:12
3 mai 2006 à 22:12
Plains toi au service client....
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
4 mai 2006 à 01:45
4 mai 2006 à 01:45
...et bonjour l'SQL injection
http://www.unixwiz.net/techtips/sql-injection.html
http://www.certa.ssi.gouv.fr/site/CERTA-2004-INF-001/index.html
Johan
http://www.unixwiz.net/techtips/sql-injection.html
http://www.certa.ssi.gouv.fr/site/CERTA-2004-INF-001/index.html
Johan
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
4 mai 2006 à 17:53
4 mai 2006 à 17:53
Tu vois un risque dans le code?
Ben en même temps, si à chaque fois que quelqu'un veux de l'aide en Php et qu'il faut àchaque fois rajouter des protections dans le code, on en finirais pas...
Ben en même temps, si à chaque fois que quelqu'un veux de l'aide en Php et qu'il faut àchaque fois rajouter des protections dans le code, on en finirais pas...