ユーザーの申し込み

This commit is contained in:
2025-12-08 00:56:06 +09:00
parent f6389eedc9
commit c7537ab36f
7 changed files with 306 additions and 43 deletions

View File

@@ -151,7 +151,7 @@ if (AUTH_ENABLED) {
$gender = 'color: '.($userData->gender === 0 ? $male : ($userData->gender === 1 ? $female : $ungender)).';';
$style = $userData->namecolor ?: ($userData->role >= 0 ? $gender : $ban);
$showname = $userData->displayname ?? $userData->username;
$showname = $userData->displayname ?: $userData->username;
$color = "<span style=\"{$style}\">{$showname}</span>";
if ($userData->role === 1) $color .= "<span style=\"font-size: x-small; background: #10c074; border: 1px solid #fcfcfc; border-radius: 10px; padding: 0 0.5em;\">✓</span>";
@@ -160,4 +160,58 @@ if (AUTH_ENABLED) {
return $color.$suffix;
}
}
function count_special_chars(string $str): int {
$count = 0;
$len = strlen($str);
for ($i = 0; $i < $len; ++$i) {
if (str_contains('!', $str[$i])) ++$count;
if (str_contains('"', $str[$i])) ++$count;
if (str_contains('#', $str[$i])) ++$count;
if (str_contains('$', $str[$i])) ++$count;
if (str_contains('%', $str[$i])) ++$count;
if (str_contains('&', $str[$i])) ++$count;
if (str_contains('\'', $str[$i])) ++$count;
if (str_contains('(', $str[$i])) ++$count;
if (str_contains(')', $str[$i])) ++$count;
if (str_contains('-', $str[$i])) ++$count;
if (str_contains('=', $str[$i])) ++$count;
if (str_contains('^', $str[$i])) ++$count;
if (str_contains('~', $str[$i])) ++$count;
if (str_contains('\\', $str[$i])) ++$count;
if (str_contains('|', $str[$i])) ++$count;
if (str_contains('[', $str[$i])) ++$count;
if (str_contains(']', $str[$i])) ++$count;
if (str_contains(':', $str[$i])) ++$count;
if (str_contains('@', $str[$i])) ++$count;
if (str_contains('`', $str[$i])) ++$count;
if (str_contains('*', $str[$i])) ++$count;
if (str_contains('{', $str[$i])) ++$count;
if (str_contains('}', $str[$i])) ++$count;
if (str_contains(';', $str[$i])) ++$count;
if (str_contains('+', $str[$i])) ++$count;
if (str_contains(',', $str[$i])) ++$count;
if (str_contains('<', $str[$i])) ++$count;
if (str_contains('.', $str[$i])) ++$count;
if (str_contains('>', $str[$i])) ++$count;
if (str_contains('/', $str[$i])) ++$count;
if (str_contains('?', $str[$i])) ++$count;
if (str_contains('_', $str[$i])) ++$count;
}
return $count;
}
function countmatch(string $str): bool {
$len = strlen($str);
$numUpper = preg_match_all('/[A-Z]/', $str) ?? 0;
$numLower = preg_match_all('/[a-z]/', $str) ?? 0;
$numDigit = preg_match_all('/[0-9]/', $str) ?? 0;
$numSymbol = count_special_chars($str);
$sum = $numUpper + $numLower + $numDigit + $numSymbol;
return $len == $sum;
}