$username_length || $username_length > ACCOUNT_USERNAME_LENGTH[1]) { generate_alert("/account/register.php", sprintf("Username must be between %d-%d characters long", ACCOUNT_USERNAME_LENGTH[0], ACCOUNT_USERNAME_LENGTH[1])); exit; } if (!preg_match(ACCOUNT_USERNAME_REGEX, $username)) { generate_alert("/account/register.php", "Bad username"); exit; } $password = $_POST["password"]; if (ACCOUNT_PASSWORD_MIN_LENGTH > strlen($password)) { generate_alert("/account/register.php", "Password must be at least " . ACCOUNT_PASSWORD_MIN_LENGTH . " characters"); exit; } $db = new PDO(DB_URL, DB_USER, DB_PASS); $stmt = $db->prepare("SELECT id FROM users WHERE username = ?"); $stmt->execute([$username]); if ($stmt->rowCount() != 0) { generate_alert("/account/register.php", "The username has already been taken"); exit; } $secret_key = generate_random_string(ACCOUNT_SECRET_KEY_LENGTH); $password = password_hash($password, PASSWORD_DEFAULT); $id = bin2hex(random_bytes(16)); $stmt = $db->prepare("INSERT INTO users(id, username, password, secret_key) VALUES (?, ?, ?, ?)"); $stmt->execute([$id, $username, $password, $secret_key]); setcookie("secret_key", $secret_key, time() + ACCOUNT_COOKIE_MAX_LIFETIME, "/"); header("Location: /account"); exit; } ?> Register an account - <?php echo INSTANCE_NAME ?>

Since doesn't require email and password reset via email is not supported, please remember your passwords!