Réponse acceptée !
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...
Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...