2020-10-02 14:22:00
1798

Рекомендация 1

Данная ошибка может возникнуть при не корректной настройки сервера под Битрикс, а именно значения директив mbstring.func_overload и  mbstring.internal_encoding должны быть установлены 2 и UTF-8 соответственно. Если у Вас есть доступ к php.ini эта настройка делается в данном файле. Например на хостинге beget, есть возможность изменить их настройки в панеле управления, непосредственно в настройках сайта. Если же нет возможности изменить значения на сервере, можно добавить директивы в файл .htaccess 

На практике это выглядит так (две последние строчки): 

<IfModule mod_php7.c>
  php_flag allow_call_time_pass_reference 1
  php_flag session.use_trans_sid off
  php_value display_errors off
  #php_value display_errors 1

  php_value mbstring.internal_encoding UTF-8
  php_value mbstring.func_overload 2
</IfModule>

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

Рекомендация 2

В моём случае настройки на сервере уже были какие требуются, но проблема оставалась, на некоторых ресурсах рекомендация была такая. Нужно чтобы код php и закрывающие теги были отделены от html тегов, а так же код компонентов был отделён от Вашего  php кода, например условий. PS^ У меня было множество проектов где наблюдалось нарушение этого условия, но темнемение, компонент вызывался нормально, во всяком случае попробуйте выполнить это условие. 

Рекомендация 3

Выполните тест системы в панели управления Битрикса Рабочий стол>Настройки>Инструменты>Проверка системы : 

Здесь нас интересует пункт (Параметры настройки UTF (mbstring и константа BX_UTF)), функция должна работать нормально, а работать она будет нормально при правильных настройках из первой рекомендации. При этом константа BX_UTF в файле .settings.php и dbconn.php была установлена true. Ошибка гласила что данная функция работает неправильно. Я попробовал установить значение данной константы false.

Файл .settings.php

 

Файл dbconn.php

Далее нужно выполнить проверку еще раз и появится следующая ошибка 

После проверки константе нужно вновь вернуть значение true в первом и втором файле. После этих манипуляций ошибка как ни странно пропала. 

 

Еще есть вариант такой, можно попробовать сменить версию php, проблема именно  в этом, если у Вас 7.3 попробуйте сменить на 7.2 или 7.4 т.к. именно в php версии 7.3 у пользователей наблюдалась  проблема такого характера.

 

Комментарии (46)