Het wachtwoord word niet gewijzigd, terwijl de melding "Wachtwoord veranderd! Je kunt nu inloggen" word weer gegeven. Dus de query is geslaagd, maar het wachtwoord ongewijzigd.
<?php
require 'session.php';
require 'db.php';
include 'header.php';
if (isset($_POST['email']) && !empty($_POST['email']) && isset($_POST['werk']) && !empty($_POST['werk'])) {
//E-mail formulier is ingevuld
$email = mysqli_real_escape_string($mysqli, $_POST['email']);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Geen geldig e-mail adres! Ga naar de <a href=\"login.php\">registratie</a> pagina!";
}
else {
//kijk of het email adres al voorkomt in de database
$sql = "SELECT email FROM login WHERE email = '$email'";
$result = mysqli_query($mysqli, $sql) or die(mysqli_error());
if (mysqli_num_rows($result)) {
//Wachtwoord resetten / Maak een nieuwe hash aan
$hash = md5(rand(0,100000)); // Genereer willekeurige 32 character hash
$sql = "UPDATE login SET hash='$hash' WHERE email='$email'";
$result = mysqli_query($mysqli, $sql) or die(mysqli_error());
$subject = "Webshop wachtwoord herstel";
$message = "Je kunt met de onderstaande link je wachtwoord herstellen.
http://www.ztjuh.tk:81/webshoptest/resetpassword.php?email=" . $email . "&hash=" . $hash;
$headers = "From:[email protected]" . "\r\n";
mail($email, $subject, $message, $headers);
if ($result == 1) {
echo "Er is een email gestuurd naar " . $email . " met een link om je wachtwoord te herstellen!";
}
}
else {
//E-mail niet geregistreerd!
echo "Dit email adres is niet geregistreerd, <a href=\"login.php\">maak een account aan</a>!";
}
}
}
elseif (isset($_GET['email']) && isset($_GET['hash']) && !empty($_GET['email']) && !empty($_GET['hash'])) {
//Link in de email is ingedrukt
$email = mysqli_escape_string($mysqli, $_GET['email']);
$hash = mysqli_escape_string($mysqli, $_GET['hash']);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Geen geldig e-mail adres! Ga naar de <a href=\"login.php\">registratie</a> pagina!";
}
else {
?>
<h3>Wachtwoord opnieuw instellen</h3>
<script type="text/javascript" language="JavaScript">
function checkPassword(theForm) {
if (theForm.password.value != theForm.password2.value) {
alert('De wachtwoorden komen niet overeen!');
return false;
} else {
return true;
}
}
</script>
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post" onsubmit="return checkPassword(this);">
<input type="hidden" id="email" name="email" value="<?php echo $email; ?>">
<input type="hidden" id="hash" name="hash" value="<?php echo $email; ?>">
<input type="password" id="password" name="password" placeholder="Wachtwoord"><br>
<input type="password" id="password2" name="password2" placeholder="Herhaal wachtwoord"><br>
<input type="submit" name="submit" value="Verander wachtwoord!">
</form>
<?php
}
}
elseif (isset($_POST['email']) && isset($_POST['hash']) && isset($_POST['password']) && isset($_POST['password2']) && !empty($_POST['email']) && !empty($_POST['hash']) && !empty($_POST['password']) && !empty($_POST['password2'])) {
$email = mysqli_escape_string($mysqli, $_POST['email']);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Geen geldig e-mail adres!";
}
else {
$hash = mysqli_escape_string($mysqli, $_POST['hash']);
$password = mysqli_real_escape_string($mysqli, $_POST['password']);
$password2 = mysqli_real_escape_string($mysqli, $_POST['password2']);
if ($password === $password2) {
$secret = password_hash($password, PASSWORD_BCRYPT);
$sql = "UPDATE login SET password='$secret' WHERE email='$email' AND hash='$hash'";
$result = mysqli_query($mysqli, $sql) or die(mysqli_error());
if ($result == 1) {
echo "Wachtwoord veranderd! Je kunt nu <a href=\"login.php\">inloggen</a>!";
}
else {
echo "Er is iets mis gegaan!";
}
}
}
}
else {
?>
<h3>Wachtwoord opnieuw instellen</h3>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
<input type="text" id="email" name="email" placeholder="E-Mail"><br>
<input type="hidden" id="werk" name="werk" value="werk">
<input type="submit" name="submit" value="Verstuur E-Mail!"><br>
</form>
<?php
}
include 'footer.php';
?>