From 32bc2efdb5c3006e15ddf7dd93775da4cb9fbffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Wed, 8 Apr 2026 09:02:58 +0200 Subject: [PATCH] fehler bei registrierung behoben --- public/register.php | 15 ++++++++++++--- public/settings.php | 11 ++++++++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/public/register.php b/public/register.php index ed5649b..8d4781b 100644 --- a/public/register.php +++ b/public/register.php @@ -68,6 +68,15 @@ function sendRegistrationNotification(string $username, string $email, ?string $ } } +function textLength(string $value): int +{ + if (function_exists('mb_strlen')) { + return mb_strlen($value); + } + + return strlen($value); +} + if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = trim($_POST['username'] ?? ''); $email = trim($_POST['email'] ?? ''); @@ -77,9 +86,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($username === '') { $errors[] = 'Bitte einen Benutzernamen eingeben.'; - } elseif (mb_strlen($username) < 3) { + } elseif (textLength($username) < 3) { $errors[] = 'Der Benutzername muss mindestens 3 Zeichen lang sein.'; - } elseif (mb_strlen($username) > 50) { + } elseif (textLength($username) > 50) { $errors[] = 'Der Benutzername darf maximal 50 Zeichen lang sein.'; } @@ -99,7 +108,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $errors[] = 'Die Passwörter stimmen nicht überein.'; } - if ($displayName !== '' && mb_strlen($displayName) > 100) { + if ($displayName !== '' && textLength($displayName) > 100) { $errors[] = 'Der Anzeigename darf maximal 100 Zeichen lang sein.'; } diff --git a/public/settings.php b/public/settings.php index 3b73478..9aa5406 100644 --- a/public/settings.php +++ b/public/settings.php @@ -39,6 +39,15 @@ function h(?string $value): string return htmlspecialchars((string) $value, ENT_QUOTES, 'UTF-8'); } +function textLength(string $value): int +{ + if (function_exists('mb_strlen')) { + return mb_strlen($value); + } + + return strlen($value); +} + function generateTelegramLinkToken(int $length = 32): string { return bin2hex(random_bytes(max(16, (int) ceil($length / 2)))); @@ -83,7 +92,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $errors[] = 'Bitte eine gültige E-Mail-Adresse eingeben.'; } - if ($displayName !== '' && mb_strlen($displayName) > 100) { + if ($displayName !== '' && textLength($displayName) > 100) { $errors[] = 'Der Anzeigename darf maximal 100 Zeichen lang sein.'; }