20) { exit(create_alert('/register.php', 400, 'Your username must be between 4 and 20 characters long', null)); } if (strlen($password) < 8) { exit(create_alert('/register.php', 400, 'Your password must be at least 8 characters long', null)); } $db = new PDO(DB_URL, DB_USER, DB_PASS); // checking for already existing accounts $stmt = $db->prepare('SELECT id FROM users WHERE username = ?'); $stmt->execute([$username]); if ($stmt->rowCount() > 0) { exit(create_alert('/register.php', 409, 'This username has been taken.', null)); } $userid = 0; do { $userid = random_int(90_000_000_000_000_000, 99_000_000_000_000_000); $stmt = $db->prepare('SELECT username FROM users WHERE id = ?'); $stmt->execute([$userid]); } while ($stmt->rowCount() > 0); $password = password_hash($password, PASSWORD_DEFAULT); $db->prepare('INSERT INTO users(id, username, `password`) VALUES (?, ?, ?)') ->execute([$userid, $username, $password]); $stmt = $db->prepare('SELECT id, username, joined_at FROM users WHERE id = ?'); $stmt->execute([$userid]); $user = $stmt->fetch(PDO::FETCH_ASSOC) ?: null; exit(create_alert('/login.php', 200, 'Registered! Now log in to your account.', $user)); } ?>