Php : recherche dans la table impossible
Résolu
tonguim
Messages postés
47
Date d'inscription
Statut
Membre
Dernière intervention
-
kilian Messages postés 8732 Date d'inscription Statut Modérateur Dernière intervention -
kilian Messages postés 8732 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Php : recherche dans la table impossible
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
6 réponses
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()); ?>
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
je vois que vous ete nombreux mais personne ne repond a mon mess je , je peux meme pas compter sur vous
...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