Voor een login gebruik ik crypt als hash methode. Echter krijg ik andere waardes terug wanneer ik inlog. Het wachtwoord ziet er dus anders uit bij het inloggen als bij het aanmaken van het wachtwoord, terwijl ik toch dezelfde code gebruik. Ik weet gewoon niet wat er verkeerd gaat of wat ik fout doe.
In onderstaande scripts werken de queries overigens goed. Alleen het wachtwoord is verschillend.
Wachtwoord aanmaken:
Wachtwoord controleren bij de login:
In onderstaande scripts werken de queries overigens goed. Alleen het wachtwoord is verschillend.
Wachtwoord aanmaken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
| $salt = mcrypt_create_iv(22, MCRYPT_DEV_URANDOM); $salt = base64_encode($salt); $salt = str_replace('+', '.', $salt); $wachtwoord = crypt(''.$_POST["wachtwoord"].'', '$2y$10$'.$salt.'$'); $query = "INSERT INTO klanten (emailadres, wachtwoord) VALUES (".mysqli_real_escape_string($connectie, $_POST["emailadres"])."', '".mysqli_real_escape_string($connectie, $wachtwoord)."')"; $result = mysqli_query($connectie, $query); $klanten_id = mysqli_insert_id($connectie); $query_salt = "INSERT INTO login (klant, code) VALUES ('".mysqli_real_escape_string($connectie, $klanten_id)."', '".mysqli_real_escape_string($connectie, $salt)."')"; $result_salt = mysqli_query($connectie, $query_salt); |
Wachtwoord controleren bij de login:
PHP:
1
2
3
4
5
6
7
8
| $query_salt = "SELECT code FROM login WHERE klant = '".$row_check_login['verificatie']."'"; $result_salt = mysqli_query($connectie, $query_salt); $row_salt = mysqli_fetch_assoc($result_salt); $wachtwoord = crypt(''.$_POST["wachtwoord"].'', '$2y$10$'.$row_salt['code'].'$'); $query_login = "SELECT klanten_id FROM klanten WHERE emailadres = '".mysqli_real_escape_string($connectie, $_POST["gebruikersnaam"])."' AND wachtwoord = '".mysqli_real_escape_string($connectie, $wachtwoord)."'"; $result_login = mysqli_query($connectie, $query_login); |