Проверка Oxwall не удалась на PHP 8.3: ошибка «Пожалуйста, заполните...», особенно при копировании текстаHtml

Программисты Html
Ответить
Anonymous
 Проверка Oxwall не удалась на PHP 8.3: ошибка «Пожалуйста, заполните...», особенно при копировании текста

Сообщение Anonymous »

Я использую сайт на базе Oxwall и недавно обновился до PHP 8.3. После обновления я столкнулся со странной проблемой с проверкой формы.
Проблема:
Когда пользователи заполняют форму (например, сообщения на форуме или профиль пользователя), копируя и вставляя текст, они часто сталкиваются с ошибкой: «Пожалуйста, заполните форму правильно». Похоже, что форма требует хотя бы одного физического нажатия клавиши, чтобы «распознать» ввод, хотя поля явно не пусты после вставки. Интересно, что текст, введенный непосредственно с клавиатуры, успешно публикуется без каких-либо проблем.
Если я обновляю страницу (F5) или подожду несколько минут, форма иногда отправляется правильно, но в конечном итоге возвращается ошибка.
Что я обнаружил:
Я подозреваю, что проблема заключается в классе RequiredValidator в ow_core/validator.php. Похоже, что PHP 8.3 по-разному обрабатывает обрезку строк или невидимые символы Юникода (появляющиеся во время копирования/вставки) или существует несоответствие между тем, как JavaScript отправляет данные и тем, как PHP их проверяет.
Вот текущая реализация моего метода isValid:
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;
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... ly-when-co
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»