[PHP/MySQL] Requête correcte mais 0 résultat

Résolu/Fermé
Siegels Messages postés 25 Date d'inscription vendredi 22 mai 2009 Statut Membre Dernière intervention 27 janvier 2012 - 22 mai 2009 à 17:53
Siegels Messages postés 25 Date d'inscription vendredi 22 mai 2009 Statut Membre Dernière intervention 27 janvier 2012 - 23 mai 2009 à 00:48
Bonjour,
Je suis en train de mettre en place un espace membre sur mon site web.

Les comptes sont liés à un programme qui n'ets pas de mon ressort:
Les noms d'utilisateurs sont stockés en majuscules, et les mots de passe codés en SHA1 de cette maniere:
$hash = SHA1(strtoupper($nomutilisateur).":".strtoupper($motdepasse));


Mon problème: Dans le code suivant, il y a une requête SQL. Celle-ci fonctionne très-bien si je l'entre moi-même dans ma console MySQL, mais ici, elle retourne 0 en mysql_num_rows() :

$connectdb = mysql_connect( $dbrealmd['host'], $dbrealmd['username'], $dbrealmd['password']);
		if ($connectdb !== FALSE){
			$account = mysql_real_escape_string(htmlentities($_POST['account'], ENT_QUOTES));
			$passwd = mysql_real_escape_string(htmlentities($_POST['passwd'], ENT_QUOTES));
			$hash = SHA1(strtoupper($account).":".strtoupper($_POST['passwd']));

			$sql = "SELECT `id`,`username`,`sha_pass_hash`,`email`,`locked`,`gmlevel` FROM `".$dbrealmd['basename']."`.`account` WHERE `username` = '".$username."' AND `sha_pass_hash` = '".$hash."' LIMIT 1";
			$req = mysql_query($sql);

Je n'ai pas tout mis, le "else" fait un header location vers ma page d'erreur.
mon $dbrealmd['valeur'] provient d'un array que j'ai fait plus tôt.

Mon site est hébergé chez OVH (et la page dont provient ce bout de script aussi), et la base de données chez moi (OVH pour le site, chez moi pour l'exécution du programme sous linux).

Avec cette valeur de "0" je sais donc qu'aucune donnée n'a été sélectionnée, or ça serait mieux pour un login...

Vous avez une idée ?


Merci d'avance !
A voir également:

6 réponses

dodoecchi Messages postés 454 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 26 avril 2012 29
22 mai 2009 à 22:12
quel binz
je n'ose même pas lire tout ce code
bidouille ta requête.... affiche les variables account, passwd et hash
enfin bref tu cherches quoi, tu fais comme moi quand ça merde, tu mets des echo $uneVariable de partout pour vérifier les valeurs etc...

Dorian
0
Merci de ta réponse.

Le code est tout bête.
La seule chose que je comprend pas justement, c'est qu'avec un echo mysql_num_rows($req);, j'ai 0, alors que ce que je cherche existe dans la DB, et la meme requete rentrée à la main marche bien....
bref c'est assez bizarre.
0
dodoecchi Messages postés 454 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 26 avril 2012 29
22 mai 2009 à 23:46
t'es bien connecté? t'a séléctionné ta db?
0
Siegels Messages postés 25 Date d'inscription vendredi 22 mai 2009 Statut Membre Dernière intervention 27 janvier 2012 1
23 mai 2009 à 00:37
Je te dis que j'ai tout testé ^^ la connexion se fait, et comme du le vois j'indique dans la requête quelle DB sélectionner
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dodoecchi Messages postés 454 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 26 avril 2012 29
23 mai 2009 à 00:38
affiche ta requete avec echo pour voir.... je vois pas quoi faire d'autre
0
Siegels Messages postés 25 Date d'inscription vendredi 22 mai 2009 Statut Membre Dernière intervention 27 janvier 2012 1
23 mai 2009 à 00:48
J't'avoue que j'ai tout affiché sauf ça x)
Ha bah tiens oui effectivement regarde:

SELECT `id`,`username`,`sha_pass_hash`,`email`,`locked`,`gmlevel` FROM `realmd`.`account` WHERE `username` = '' AND `sha_pass_hash` = '(je le masque)' LIMIT 1


mon username qui passe pas, j'ai changé de nom de variable quand j'ai nettoyé le code quand j'ai vu qu'autre-chose marchait pas...
bon ben mon erreur était toute bête, merci ^^
0