2 if (isset($_GET['token'])) {
3 @list ($username, $token) = explode(':', $_GET['token']);
4 $userdir = strtolower("profile/$username");
5 if ($verify = @file_get_contents("$userdir/.token")
6 and $verify == $token) {
14 print "<p class=warn>Code onjuist, geen toestemming om wachtwoord in te stellen.</p>\n";
19 http_response_code(303);
20 $target = urlencode($_SERVER['REQUEST_URI']);
21 header("Location: /login?goto=$target");
26 $error = passform($_POST);
28 print "<p>Het wachtwoord is aangepast. Voortaan met het nieuwe wachtwoord inloggen.</p>\n\n";
31 print "<p class=warn>$error</p>\n\n";
34 function passform($input = [])
39 return "Log eerst (opnieuw?) in.";
42 $pwfile = "{$User['dir']}/.passwd";
43 if (!is_writable($pwfile)) {
44 return "Het wachtwoord kan niet worden aangepast voor deze gebruiker.";
47 if (!empty($User['pass'])) {
48 if (empty($_POST['oldpass'])) {
49 return "Als extra beveiliging tegen ongewenste aanpassingen moet het bestaande wachtwoord worden ingevoerd.";
52 if (!login_password_verify($_POST['oldpass'], $User['pass'])) {
53 return "Het bestaande wachtwoord is onjuist ingevoerd; niet aangepast.";
57 if (empty($_POST['newpass'])) {
58 return "Geef een nieuw wachtwoord op.";
61 if (strlen($_POST['newpass']) < 4) {
62 return "Zo'n kort wachtwoord is een slecht idee.";
65 if ($_POST['newpass'] == $User['name']) {
66 return "De loginnaam is wel heel makkelijk raadbaar als wachtwoord.";
69 if (!file_put_contents($pwfile, $_POST['newpass'])) {
70 return "Het nieuwe wachtwoord kon niet worden opgeslagen. Het oude wachtwoord is behouden.";
73 @unlink("{$User['dir']}/.token"); # invalidate reset token
75 $authhash = md5($_POST['newpass']);
76 $User['auth'] = "{$User['name']}:$authhash";
84 <?php if (!empty($User['pass'])) { ?>
85 <input type="password" name="oldpass" value="" placeholder="Huidig wachtwoord" />
87 <input type="password" name="newpass" value="" placeholder="Nieuw wachtwoord" />
88 <input type="submit" value="Wijzig" />