Als ik het goede wachtwoord invoer, geeft ie toch een error met daaronder beide MD5 wachtwoorden die dan hetzelfde zijn..
Voorbeeld:
Ik probeer in te loggen met de username sjaak met het wachtwoord truus dat in MD5 98e07194bf7b5c2b8258b52e6f4d259e is. In de database staat dus 98e07194bf7b5c2b8258b52e6f4d259e en hij vergelijkt hem. Daarna krijg ik alsnog een error dat het niet klopt. Weet iemand hoe dit zit? Heb ik een beginnersfout gemaakt:3?
- Gebruik mysql_fetch_assoc in plaats van mysql_fetch_array waarom? Omdat mysql_fetch_array 2 arrays teruggeeft. 1 met nummers en 1 met letters en mysql_fetch_assoc maar 1.
- Gebruik liever geen wildcard (*) maar selecteer wat je nodig hebt.
- Gebruik geen backtricks (`) in sql.
Oke, bedankt ik ga het uitproberen. Ben beetje slaperig en heb delen letterlijk van ander script gekopieert, klinkt als slecht smoesje maar ben half ziek in de vakantie:( #teveelinfo
EDIT: De code werkte niet direct, moest wat dingen aanpassen waaronder dat password in de database password_md5 heet. Alsnog bedankt!
- Gebruik mysql_fetch_assoc in plaats van mysql_fetch_array waarom? Omdat mysql_fetch_array 2 arrays teruggeeft. 1 met nummers en 1 met letters en mysql_fetch_assoc maar 1.
Beetje erg tegenstrijdig.
$user['0'] zal niet bestaan bij mysql_fetch_assoc()
- Gebruik mysql_fetch_assoc in plaats van mysql_fetch_array waarom? Omdat mysql_fetch_array 2 arrays teruggeeft. 1 met nummers en 1 met letters en mysql_fetch_assoc maar 1.
Beetje erg tegenstrijdig.
$user['0'] zal niet bestaan bij mysql_fetch_assoc()
[/quote]
Wat een verschrikkelijk domme fout -.-' Ag het was avond..
Anyway.
In plaats van $array['0'] zou je gewoon het volgende kunnen doen:
Ik zou het allemaal in me query doen, dan geef je een minder gedetailleerde fout aan, maar tis veel makkelijker :D
Vergeet trouwens ook niet je post velden te beveiligen voor sql injectie in je query!
Voorbeeld
<?php
$sql =
"
SELECT
username,
password
FROM
users
WHERE
username = '".mysql_real_escape_string( $_POST['username'] )."'
AND
password = '".mysql_real_escape_string( $_POST['password'] )."'
";
if( !$res = mysql_query( $sql ) )
{
# Fout
echo 'Er is een fout in de query opgetreden.';
}
elseif( mysql_num_rows( $res ) == 0 )
{
# Fout
echo 'Deze gebruikersnaam / wachtwoord combinatie bestaat niet.';
}
else
{
/*
Ingelogd
- Melding geven
- Sessie aanmaken
- Doorsturen?
etc. etc.
*/
}
?>