bank_sql/
wesweb01/bank_sql/change_password.php1 lines
<?php
# Sida för att ändra lösenord.
require "modules/session.php";
require "modules/page.php";
Session::Init();
Session::RedirectIfNotLoggedIn();
$user = Session::GetUser();
function try_change_password($oldPassword, $newPassword, $newPassword2): RequestResult
# Försöker ändra lösenordet. Kollar ifall gamla lösenordet stämmer, samt de två nya stämmer överens.
{
global $user;
if ($newPassword != $newPassword2) # Ifall de två nya lösenorden ej stämmer överens.
return new RequestResult(false, "De nya lösenorden stämmer ej överens.");
$loginUser = User::TryLoginUser($user->username, $oldPassword); # Försöker logga in med angedda lösenordet.
if (!$loginUser) # Ifall nuvarande lösenordet inte stämmer.
return new RequestResult(false, "Det angedda nuvarande lösenordet är inkorrekt.");
# Nytt lösenord hashas och sparas.
$user->passwordHash = hash_password($newPassword, $user->passwordSalt);
$user->updateValues(array("passwordHash"));
return new RequestResult(true, "Ditt lösenord är nu ändrat!");
}
$result = null;
if (isset($_POST["old-password"]) && isset($_POST["new-password"]) && isset($_POST["new-password-confirmation"]))
# Ifall formulärdata finns försöker man ändra lösenordet.
$result = try_change_password($_POST["old-password"], $_POST["new-password"], $_POST["new-password-confirmation"]);
?>
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Banken - Ändra lösenord</title>
<link rel="stylesheet" type="text/css" href="../css/materialize.css">
<script defer type="text/javascript" src="../js/materialize.js"></script>
</head>
<body>
<?php print_navbar(); ?>
<div class="row">
<div class="col s4 offset-s4">
<h1>Ändra lösenord</h1>
<form method="POST">
<?php
# Skriver ut resultat från lösenordsändringen.
if (isset($result))
echo "<p><b>{$result->message}</b></p><br>";
?>
<p>
<label for="old-password">Ange nuvarande lösenord: </label>
<input id="old-password" type="password" name="old-password" class="validate" required>
</p>
<p>
<label for="new-password">Skriv ditt nya lösenord: </label>
<input id="new-password" type="password" name="new-password" class="validate" required>
</p>
<p>
<label for="new-password-confirmation">Bekräfta nytt lösenord: </label>
<input id="new-password-confirmation" type="password" name="new-password-confirmation"
class="validate" required>
</p>
<p>
<input class="btn blue-grey darken" type="submit" value="Ändra lösenord">
</p>
</form>
</div>
</div>
</body>
</html>