Erreur dans un code

Résolu
hero88 Messages postés 9 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 18 janvier 2009 - 23 déc. 2008 à 14:36
hero88 Messages postés 9 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 18 janvier 2009 - 23 déc. 2008 à 18:10
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

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
23 déc. 2008 à 17:55
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...
3
cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 1
23 déc. 2008 à 15:17
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

++
0
hero88 Messages postés 9 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 18 janvier 2009
23 déc. 2008 à 18:10
Merci pour les réponses !!!

Neigedhiver je pense que c'est bon maintenant !!
0
Rejoignez-nous