[I128-2734] PHP Warning при поиске в АРМ Читатель с пустым полем "Я ищу"


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.5 >> [I128-2734] PHP Warning при поиске в АРМ Читатель с пустым полем "Я ищу"📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Исправление ошибок 2026.2.5 🔘 Завершено Высший Ilya Mikhaylenko

Компоненты: ИРБИС 128. Модуль EC - АРМ Читатель

Завершено: 27.07.2026 13:19

Проблема При выполнении поиска в АРМ Читатель пустое поле "Я ищу" могло передаваться в обработчик как строковый параметр. В этом случае сервер фиксировал PHP Warning при построении поискового запроса, хотя для пользователя пустое поле должно означать отсутствие дополнительных полнотекстовых терминов.

Сценарий воспроизведения

  1. Открыть электронный каталог / АРМ Читатель.
  2. Выполнить поиск, при котором параметр ftexpression присутствует, но поле "Я ищу" пустое.
  3. В серверном окружении фиксируется PHP Warning в ConstructECSearchRequest.

Ожидаемый результат Пустое поле "Я ищу" не участвует в полнотекстовой части запроса и не приводит к серверному предупреждению.

Причина Параметр ftexpression мог приходить из запроса как пустая строка. Существующая нормализация обрабатывала только непустую строку, поэтому пустая строка доходила до foreach.

Решение В ConstructECSearchRequest параметр ftexpression перед обработкой приводится к массиву: пустая строка становится пустым массивом, непустая строка разбивается на термины, массивные значения сохраняются.

Риски Изменение ограничено построением EC-поискового запроса. Поведение непустых полнотекстовых выражений и массива ftexpression[] сохраняется.