<?php include('connect.php');
error_reporting(E_ALL);
error_reporting(-1);
ini_set('error_reporting', E_ALL);
ini_set('error_log', 'error.log');
global $wrongPwdErr, $accountNotExistErr, $emailPwdErr, $email_empty_err, $pass_empty_err;
if(isset($_POST["submit"]))
{
$oudwachtwoord = $_POST['oudwachtwoord'];
$nieuwwachtwoord = $_POST['nieuwwachtwoord'];
$nieuwwachtwoordcontrole = $_POST['nieuwwachtwoordcontrole'];
// clean data
$pswdoud = mysqli_real_escape_string($connection, $oudwachtwoord);
$pswdnieuw = mysqli_real_escape_string($connection, $nieuwwachtwoord);
$pswdnieuwcontrole = mysqli_real_escape_string($connection, $nieuwwachtwoordcontrole);
// get from session
$email = $_SESSION['email'];
// Query if email exists in db
$sql = "SELECT wachtwoord, is_active From gebruikers WHERE email = '{$email}' ";
$query = mysqli_query($connection, $sql);
$rowCount = mysqli_num_rows($query);
// If query fails, show the reason
if(!$query){
die("SQL query failed: " . mysqli_error($connection));
}
// Fetch user data
while($row = mysqli_fetch_array($query)) {
$pass_word = $row['wachtwoord'];
$is_active = $row['is_active'];
}
// Verify password
if (password_verify($oudwachtwoord, $pass_word)) {
$password = password_verify($oudwachtwoord, $pass_word);
} else {
$status = "NOTOK";
$foutoudwachtwoord = '<div class="alert alert-danger">
Het huidige wachtwoord klopt niet. '.$status.'
</div><br>';
}
if ($pswdnieuw == $pswdnieuwcontrole) {
} else {
$status = "NOTOK";
$wachtwoordnietgelijk = '<div class="alert alert-danger">
De nieuwe wachtwoorden komen niet overeen. '.$status.'
</div><br>';
}
if(preg_match("/^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8,30}$/", $pswdnieuw)) {
} else {
$status = "NOTOK";
$wrongPwdErr = '<div class="alert alert-danger">
Wachtwoord moet tussen de 8 en 30 karakters zijn met een hoofdletter, kleine letter en een cijfer. '.$status.'
</div>';
}
// Check if email exist
if($rowCount <= 0) {
$status = "NOTOK";
$accountNotExistErr = '<div class="alert alert-danger">
Onjuiste gegevens, probeer opnieuw. '.$status.'
</div><br>';
} else {
$status = "OK";
}
if ($status == "OK")
{
// Allow only active user
if($is_active == '1')
{
$password_hash = \password_hash($password, PASSWORD_ARGON2ID);
// Query
$sql2 = "UPDATE gebruikers SET wachtwoord = '{$password_hash}' WHERE email = '{$email}' ";
// Create mysql query
$sqlQuery = mysqli_query($connection, $sql2);
$success_msg = '<br><div class="alert alert-danger">Het wachtwoord is gewijzigd! '.$status.'<br></div>';
if(!$sqlQuery)
{
die("MySQL query failed!" . mysqli_error($connection));
}
}
else {
$emailPwdErr = '<div class="alert alert-danger">
Dit account is niet meer actief.
</div><br>';
}
}
else {
}
}
?>
2.273 views
Ik heb een script gemaakt waarmee een gebruiker (na inloggen) zijn wachtwoord kan wijzigen. Het gaat echt niet helemaal goed met mijn if en else. Het wachtwoord wordt nu gewijzigd ook al is het oude wachtwoord niet goed ingevuld en ook al zijn de nieuwe wachtwoorden niet gelijk aan elkaar. Ik zie even door de bomen het bos niet meer maar wat gaat er mis?