Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
7a7fff3a02
41
lib/strings.php
Normal file
41
lib/strings.php
Normal 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);
|
||||||
|
}
|
||||||
@ -7,6 +7,8 @@ error_reporting(E_ALL);
|
|||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
|
require_once __DIR__ . '/lib/strings.php';
|
||||||
|
|
||||||
// 1) DB-Verbindung (einmal)
|
// 1) DB-Verbindung (einmal)
|
||||||
$servername = "localhost";
|
$servername = "localhost";
|
||||||
$port = 3306;
|
$port = 3306;
|
||||||
@ -64,12 +66,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST')
|
|||||||
$errors[] = 'Bitte eine gültige E-Mail-Adresse eingeben.';
|
$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 3–50 Zeichen eingeben.';
|
$errors[] = 'Bitte einen Benutzernamen mit 3–50 Zeichen eingeben.';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($pw === '' || mb_strlen($pw) < 8)
|
if ($pw === '' || str_length($pw) < 8)
|
||||||
{
|
{
|
||||||
$errors[] = 'Bitte ein Passwort mit mindestens 8 Zeichen wählen.';
|
$errors[] = 'Bitte ein Passwort mit mindestens 8 Zeichen wählen.';
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user