Den generelle praksis er som følger:
- Hent
adgangskode
hash fra databasen, hvorbrugernavn
=det indtastede brugernavn. - Hvis der findes rækker, så er der en bruger
- Nu sammenligner du den indtastede adgangskode med den hash, der er gemt i databasen.
Jeg vil skitsere ovenstående flow i noget pseudokode for dig her:
$query = SELECT password FROM users WHERE username = '$username'
$data = FETCH_THE_DATA($query);
if(password_verify($USER_INPUTTED_PASSWORD, $data['password'])) {
// password is correct
} else {
// password is in-correct
}
Noter
- Stop med at bruge
mysql_*
funktioner. Biblioteket er forældet, da det er upålideligt og vil blive fjernet i fremtidige udgivelser af PHP.- Det er bedre at bruge PDO eller MySQLi Prepared Statements
- Du bør altid læse manualen -
password_verify()
, står det klart, at du sammenligner den "brugerindtastede adgangskode" med den hashed-version, som er gemt i din database.