我基本上是PHP的新手,我的朋友们告诉我,在2018年,md5已经过时且不再安全了。我做了一些研究,并找到了将密码保存到数据库并验证的好方法。我想添加password_hash和password_verify,但我不知道该怎么做。我尝试了一些东西,但是错误完全错了,所以我决定上传我的作品,然后再使用password_hash和password_verify
<?php
if (isset($_POST['login-submit'])) {
require_once("database/config.php");
$email = mysqli_real_escape_string($mysqli, $_POST['email']);
$wachtwoord = md5(mysqli_real_escape_string($mysqli, $_POST['password']));
if (strlen($email) > 0 && strlen($wachtwoord) > 0) {
$query = "SELECT * FROM users WHERE email = '$email' AND wachtwoord = '$wachtwoord'";
$result = mysqli_query($mysqli, $query);
if (mysqli_num_rows($result) == 1) {
while ($row = mysqli_fetch_array($result)){
$_SESSION['voornaam'] = $row['voornaam'];
$_SESSION['achternaam'] = $row['achternaam'];
$_SESSION['email'] = $row['email'];
$_SESSION['telefoonnummer'] = $row['telefoonnummer'];
$_SESSION['accountType'] = $row['accountType'];
header("location: overzicht");
}
}
else{$error1 = 'Inloggen is mislukt!';}
}
else{$error1 = "Niet alle velden zijn ingevuld";}
}
if (isset($_POST['register-submit'])){
require_once("database/config.php");
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
$email = $_POST['email'];
$telefoonnummer = $_POST['telefoonnummer'];
$wachtwoord = md5($_POST['password']);
$wachtwoordBevestigen = md5($_POST['confirm-password']);
$accountType = "gebruiker";
if(strlen($voornaam) > 0 &&strlen($achternaam) > 0 && strlen($email) > 0 && strlen($telefoonnummer) > 0 && strlen($wachtwoord) > 0 && strlen($wachtwoordBevestigen) > 0){
if ($wachtwoord == $wachtwoordBevestigen) {
$query = "INSERT INTO users (voornaam, achternaam, email, telefoonnummer, wachtwoord, accountType)
VALUES (
'$voornaam',
'$achternaam',
'$email',
'$telefoonnummer',
'$wachtwoord',
'$accountType'
)";
$result = mysqli_query($mysqli, $query);
if ($result) {header("location: index");}
else {$error2 = 'Er ging iets mis met het toevoegen!';}
}
else{$error2 = "Wachtwoord is niet gelijk";}
}
else{$error2 = "Niet alle velden zijn ingevuld";}
}
?>