Die Oxwall-Validierung schlägt unter PHP 8.3 fehl: „Bitte füllen Sie …“-Fehler aus, insbesondere beim Kopieren und EinfüPhp

PHP-Programmierer chatten hier
Anonymous
 Die Oxwall-Validierung schlägt unter PHP 8.3 fehl: „Bitte füllen Sie …“-Fehler aus, insbesondere beim Kopieren und Einfü

Post by Anonymous »

Ich betreibe eine Oxwall-basierte Website und habe kürzlich ein Upgrade auf PHP 8.3 durchgeführt. Seit dem Upgrade bin ich auf ein seltsames Problem mit der Formularvalidierung gestoßen.
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;
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post