Sixtens hemsida Uppgifter Blogg Om

Bankapplikation med databas

Gå till sida

Källkod

bank_sql/

logout.php

transfer.php

index.php

login.php

manage.php

signup.php

change_password.php

PREP/

POPULATE.php

QUERIES.sql

modules/

user.php

page.php

database.php

session.php

utility.php

wesweb01/bank_sql/change_password.php

1 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>