Erreur dans un code [Résolu]

Signaler
Messages postés
9
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
18 janvier 2009
-
Messages postés
9
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
18 janvier 2009
-
Bonjour, j'ai une erreur dans le code suivant est qu'il y a quelqu'un qui peut m'aider?
$result @mysql_query('SELECT name, email FROM `users` WHERE username ".mysql_real_escape_string($_POST['username']).'\' AND password = ".mysql_real_escape_string(md5($_POST['password'])).'");

Merci !!

3 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
L'erreur est pourtant simple à voir (bon c'est vrai, donner le message d'erreur c'est sympa quand même). Ta chaine de caractères est mal foutue...
En passant : inutile d'échapper une chaîne produite par la fonction md5... Cette fonction ne retourne que des caractères alphanumériques a-z0-9

Essaie ça :
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string(md5($_POST['password']));
$sql = "SELECT name, email FROM `users` WHERE username='$username' AND password='$password';";

$result = @mysql_query($sql);
if (false !== $result) {
  // ... pouf pouf ...
}
else {
  die('Erreur ' . mysql_errno() . ' : ' . mysql_error());
}

Je sais que mes guillemets doubles vont en choquer plus d'un, mais au moins, c'est lisible (et pour ce qu'on y perd en perf, c'est vraiment dérisoire). Sinon, on peut utiliser sprintf(). L'idée, quand on a du mal à s'y retrouver dans ses concaténations de chaines et de fonctions, c'est de rendre ça plus lisible... Ca fait plus de lignes, mais bon sang, comme c'est plus simple à débuguer car plus simple à relire...

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
bonjour

moi aussi j'ai une question :
comment on répond à ta question sans connaitre l'erreur ?

alors :
1/ vire le @ devant mysql_query
2/ et ajoute un or die( mysql_error() ); à la suite pour voir ton erreur

++
Messages postés
9
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
18 janvier 2009

Merci pour les réponses !!!

Neigedhiver je pense que c'est bon maintenant !!