escape_string($_POST['key']); $sql = "SELECT userid FROM PasswordReset WHERE `key`='$key'"; if ($query = $conn->query($sql)) { $userid = $query->fetchArray()['userid']; } else { queue_message(new Message("SQL error: " . $conn->error, "danger")); header('Location: /'); } $rawPass = $_POST['pass']; $rawRepeat = $_POST['pass_repeat']; if (changePassword($userid, $rawPass, $rawRepeat)) { $conn->query("DELETE FROM PasswordReset WHERE `key`='$key'"); } } else if (isset($_POST['email'])) { $email = $conn->escape_string($_POST['email']); $sql = "SELECT UID FROM Users WHERE Email='$email'"; if ($query = $conn->query($sql)) { $userid = $query->fetchArray()['UID']; } else { queue_message(new Message("No account has that e-mail address registered.", "danger")); header('Location: /'); } $key = generateKey(32); $sql = "INSERT INTO PasswordReset VALUES ('$userid', '$key')"; if ($conn->query($sql)) { $external_url = Config::$external_url; mail($email, Config::$sitename . " password reset", "To reset your password, navigate to this address: $external_url/login/?reset&key=$key"); } else { echo $conn->error; } } else { if (isset($_GET['key'])) { $key = $_GET['key']; ?>