Problème authentification SQL & PhP
Fermé
wars77
Messages postés
50
Date d'inscription
samedi 10 février 2007
Statut
Membre
Dernière intervention
25 avril 2011
-
Modifié par wars77 le 24/04/2011 à 20:18
le père - 26 avril 2011 à 11:48
le père - 26 avril 2011 à 11:48
A voir également:
- Problème authentification SQL & PhP
- Double authentification google - Guide
- Easy php - Télécharger - Divers Web & Internet
- Application d'authentification facebook - Guide
- Authentification coco par sms - Forum Mail
- Sql lister les tables ✓ - Forum Programmation
3 réponses
Bonjour
Tu as ce message parce que ta requête a un problème -> Mysql_query rend False (un booléen) au d'une d'une ressource (quand tout va bien)
Le problème de ta requête, c'est qu'elle est ambiguë. Quand tu fais un select from idclient, idcandidat, tu récupères le produit cartésien des deux tables. Il y a donc dans chaque ligne de réponse deux Id, deux MDP, deux Mail, un nom et un prenom. Le Id et MDP qui apparaissent dans ta requête, on ne sait si tu parles du client ou du candidat
Que cherches-tu à faire avec cette requête ?
Tu as ce message parce que ta requête a un problème -> Mysql_query rend False (un booléen) au d'une d'une ressource (quand tout va bien)
Le problème de ta requête, c'est qu'elle est ambiguë. Quand tu fais un select from idclient, idcandidat, tu récupères le produit cartésien des deux tables. Il y a donc dans chaque ligne de réponse deux Id, deux MDP, deux Mail, un nom et un prenom. Le Id et MDP qui apparaissent dans ta requête, on ne sait si tu parles du client ou du candidat
Que cherches-tu à faire avec cette requête ?
wars77
Messages postés
50
Date d'inscription
samedi 10 février 2007
Statut
Membre
Dernière intervention
25 avril 2011
1
25 avril 2011 à 19:56
25 avril 2011 à 19:56
En fait, je voudrais que le script demander à la DB si les logins entrés en $Id et $MDP sont présent dans l'une des deux tables.
Bonjour
Effectivement, ça peut se faire en une seule requête avec UNION, je ne connais pas la syntaxe par coeur et je te laisse la chercher dans le doc mysql. Personnellement, je ferais la recherche dans une table puis, en cas d'échec, dans l'autre.
Pourquoi fais-tu une recherche sur $Id pour ensuite vérifier si MDP est bon ? tu peux tout vérifier en une seule fois, et même savoir combien il y en a dans ta base (c'est ça qui t'intéresse. Il y en a 0 ou 1 ; s'il y en a plus, c'est que tu surveilles mal les inscriptions)
"select count(*) as nb from idclient, idcandidat where Id='$Id' AND MDP='$MDP'"
Tu n'as plus qu'à tester la valeur de nb.
Tu as l'avantage que cette requête rend toujours un résultat, alors que celle que tu écrivais ne rendait rien si on ne trouvait personne dans la base, et ton script planterait encore sur le if ($ligne['MDP'] == $MDP) (puisque $ligne ne serait pas un tableau, mais la valeur booléenne false)
Effectivement, ça peut se faire en une seule requête avec UNION, je ne connais pas la syntaxe par coeur et je te laisse la chercher dans le doc mysql. Personnellement, je ferais la recherche dans une table puis, en cas d'échec, dans l'autre.
Pourquoi fais-tu une recherche sur $Id pour ensuite vérifier si MDP est bon ? tu peux tout vérifier en une seule fois, et même savoir combien il y en a dans ta base (c'est ça qui t'intéresse. Il y en a 0 ou 1 ; s'il y en a plus, c'est que tu surveilles mal les inscriptions)
"select count(*) as nb from idclient, idcandidat where Id='$Id' AND MDP='$MDP'"
Tu n'as plus qu'à tester la valeur de nb.
Tu as l'avantage que cette requête rend toujours un résultat, alors que celle que tu écrivais ne rendait rien si on ne trouvait personne dans la base, et ton script planterait encore sur le if ($ligne['MDP'] == $MDP) (puisque $ligne ne serait pas un tableau, mais la valeur booléenne false)