$rules['username_max']) { $errors[] = sprintf( 'Uživatelské jméno musí mít %d až %d znaků.', $rules['username_min'], $rules['username_max'] ); } if (!preg_match('/^[A-Za-z0-9]+$/', $username)) { $errors[] = 'Uživatelské jméno smí obsahovat pouze písmena A-Z a číslice (bez diakritiky a speciálních znaků).'; } return $errors; } function validate_password(string $password, array $rules): array { $errors = []; $len = strlen($password); if ($len < $rules['password_min'] || $len > $rules['password_max']) { $errors[] = sprintf( 'Heslo musí mít %d až %d znaků.', $rules['password_min'], $rules['password_max'] ); } if (!preg_match('/^[\x21-\x7E]+$/', $password)) { $errors[] = 'Heslo smí obsahovat pouze běžné znaky ASCII (bez mezer a diakritiky) — herní klient WoW jiné znaky nepodporuje.'; } return $errors; } function validate_email(string $email): array { if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { return ['Zadej platnou e-mailovou adresu.']; } return []; }