$username, 'dir' => $userdir, 'pass' => NULL, ]; } else { print "

Code onjuist, geen toestemming om wachtwoord in te stellen.

\n"; return TRUE; } } elseif (!$User) { http_response_code(303); $target = urlencode($_SERVER['REQUEST_URI']); header("Location: /login?goto=$target"); exit; } if ($_POST) { $error = passform($_POST); if (empty($error)) { print "

Het wachtwoord is aangepast. Voortaan met het nieuwe wachtwoord inloggen.

\n\n"; return; } print "

$error

\n\n"; } function passform($input = []) { global $User; if (empty($User)) { return "Log eerst (opnieuw?) in."; } $pwfile = "{$User['dir']}/.passwd"; if (!is_writable($pwfile)) { return "Het wachtwoord kan niet worden aangepast voor deze gebruiker."; } if (!empty($User['pass'])) { if (empty($_POST['oldpass'])) { return "Als extra beveiliging tegen ongewenste aanpassingen moet het bestaande wachtwoord worden ingevoerd."; } if (!login_password_verify($_POST['oldpass'], $User['pass'])) { return "Het bestaande wachtwoord is onjuist ingevoerd; niet aangepast."; } } if (empty($_POST['newpass'])) { return "Geef een nieuw wachtwoord op."; } if (strlen($_POST['newpass']) < 4) { return "Zo'n kort wachtwoord is een slecht idee."; } if ($_POST['newpass'] == $User['name']) { return "De loginnaam is wel heel makkelijk raadbaar als wachtwoord."; } if (!file_put_contents($pwfile, $_POST['newpass'])) { return "Het nieuwe wachtwoord kon niet worden opgeslagen. Het oude wachtwoord is behouden."; } @unlink("{$User['dir']}/.token"); # invalidate reset token $authhash = md5($_POST['newpass']); $User['auth'] = "{$User['name']}:$authhash"; login_setcookie(); return; } ?>