Merge remote-tracking branch 'origin/main'

This commit is contained in:
Paul Eisenbock 2026-01-28 16:22:42 +01:00
commit 7a7fff3a02
2 changed files with 45 additions and 2 deletions

41
lib/strings.php Normal file
View File

@ -0,0 +1,41 @@
<?php
// lib/strings.php
// Kleine String-Helper ohne harte Abhängigkeit von mbstring.
// Ziel: Längenvalidierung möglichst „zeichenbasiert“ und UTF-8-tauglich.
/**
* Liefert die Länge eines Strings in Zeichen (nicht Bytes), wenn möglich.
*
* Priorität:
* 1) mb_strlen (mbstring)
* 2) grapheme_strlen (intl)
* 3) UTF-8 Codepoint-Zählung via PCRE
* 4) Fallback: strlen (Bytes)
*/
function str_length(string $s): int
{
if (function_exists('mb_strlen'))
{
return (int)mb_strlen($s, 'UTF-8');
}
if (function_exists('grapheme_strlen'))
{
$len = grapheme_strlen($s);
if ($len !== false)
{
return (int)$len;
}
}
// UTF-8 Codepoints zählen (best-effort ohne Extensions)
$m = [];
$ok = @preg_match_all('/./us', $s, $m);
if ($ok !== false)
{
return (int)$ok;
}
// Letzter Fallback (Bytes)
return strlen($s);
}

View File

@ -7,6 +7,8 @@ error_reporting(E_ALL);
session_start();
require_once __DIR__ . '/lib/strings.php';
// 1) DB-Verbindung (einmal)
$servername = "localhost";
$port = 3306;
@ -64,12 +66,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST')
$errors[] = 'Bitte eine gültige E-Mail-Adresse eingeben.';
}
if ($displayName === '' || mb_strlen($displayName) < 3 || mb_strlen($displayName) > 50)
if ($displayName === '' || str_length($displayName) < 3 || str_length($displayName) > 50)
{
$errors[] = 'Bitte einen Benutzernamen mit 350 Zeichen eingeben.';
}
if ($pw === '' || mb_strlen($pw) < 8)
if ($pw === '' || str_length($pw) < 8)
{
$errors[] = 'Bitte ein Passwort mit mindestens 8 Zeichen wählen.';
}