md5() in mysql, dat hoort toch gewoon te werken?
Dit is mijn script (verkort):

<?
$pass = htmlspecialchars(trim(md5($_POST['password'])));

$query = mysql_query("SELECT id FROM users WHERE username = '".$username."' AND password = '".$pass."'") or die('Query mislukt');

if (mysql_num_rows($query) == '')
{
echo 'Ongeldig username/password';
exit();
}
?>

Maar telkens zegt ie dat mun pass fout is, hoe komt dit?????
Hij zegt dat je pass fout is?

Hmmz zoals deze week al ergens eerder gezegt heb -> mysql_num_rows geeft een integer terug -> 0,1,2,3,4,5 etc ...
mysql_num_rows() geeft toch aan hoeveel rijen er zijn met die voorwaarden (WHERE username = '".$username."' AND password = '".$pass."'").

Dus als er 1 user is met die info dan zegt ie dat if mysql_num_rows 1 is, en dan log je in...

En trouwens, het script werkte in het begin perfect, totdat ik de passwords ging encrypten...

Als ik de encryptie weghaal, en ik het geëncrypte password uit de database haal en daarmee inlog, dan werkt ie wel :S...

Wat is er mis :|??
Ik denk dat het aan htmlspecialchars() ligt. Als er tekens zoals & of % inzitten dat maakt ie er &blah; van.

Haal htmlspecialchars() dus weg, het is toch totaal overbodig.

Enne...
if (mysql_num_rows($query) == '')

moet zijn

if (mysql_num_rows($query) == 0)

Er komt een integer uitrollen, dus is het 0, en niet [leeg]
Hmmz zoals deze week al ergens eerder gezegt heb -> mysql_num_rows geeft een integer terug -> 0,1,2,3,4,5 etc ...

Zie je :)

Reageren