Das Problem:
Wenn Benutzer ein Formular (z. B. Forenbeiträge oder Benutzerprofil) durch Kopieren und Einfügen von Text ausfüllen, stoßen sie häufig auf die Fehlermeldung: „Bitte füllen Sie das Formular ordnungsgemäß aus.“ Das Formular scheint mindestens einen physischen Tastendruck zu erfordern, um die Eingabe zu „erkennen“, auch wenn die Felder nach dem Einfügen eindeutig nicht leer sind. Interessanterweise wird Text, der direkt über die Tastatur eingegeben wird, ohne Probleme erfolgreich veröffentlicht.
Wenn ich die Seite aktualisiere (F5) oder ein paar Minuten warte, wird das Formular manchmal korrekt übermittelt, aber der Fehler kehrt schließlich zurück.
Was ich gefunden habe:
Ich vermute, dass das Problem in der RequiredValidator-Klasse in ow_core/validator.php liegt. Anscheinend handhabt PHP 8.3 das Abschneiden von Zeichenfolgen oder unsichtbare Unicode-Zeichen (die beim Kopieren/Einfügen eingeführt werden) anders, oder es besteht eine Diskrepanz zwischen der Art und Weise, wie JavaScript die Daten sendet und wie PHP sie validiert.
Hier ist die aktuelle Implementierung meiner isValid-Methode:
Code: Select all
public function isValid( $value )
{
if ( is_array($value) )
{
if ( sizeof($value) === 0 )
{
return false;
}
}
else if ( $value === null || mb_strlen(trim($value)) === 0 )
{
return false;
}
return true;
}
Mobile version