Required текст ошибки

Добрый день!
Перевожу c 7,4
вот такая ошибка

TypeError]
call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method globalVariables::set() cannot be called statically (0) /home/c/cr31222/svet-c_2018.ru/public_html/bitrix/modules/main/classes/general/module.php:467

#0: ExecuteModuleEventEx(array) /home/c/cr31222/svet-c_2018.ru/public_html/bitrix/modules/main/include.php:530

#1: require_once(string) /home/c/cr31222/svet-c_2018.ru/public_html/bitrix/modules/main/include/prolog_before.php:19

#2: require_once(string) /home/c/cr31222/svet-c_2018.ru/public_html/bitrix/modules/main/include/prolog.php:10

#3: require_once(string) /home/c/cr31222/svet-c_2018.ru/public_html/bitrix/header.php:1

#4: require(string) /home/c/cr31222/svet-c_2018.ru/public_html/catalog/index.php:2

#5: include_once(string) /home/c/cr31222/svet-c_2018.ru/public_html/bitrix/modules/main/include/urlrewrite.php:184

#6: include_once(string) /home/c/cr31222/svet-c_2018.ru/public_html/bitrix/urlrewrite.php:2

не могу найти что поменять, public static дописывал, вылезли ошибки, попросилось все поменять обратно, какой модуль не такой тоже не могу разобраться.

467 строка выглядит так:

return call_user_func_array($arEvent[«CALLBACK»], $args);

Я полный ноль в этом, прошу помочь…
Развернул резервную копию сайта на виртуальной машине…и сразу же появилась данная ошибка:

[ArgumentCountError] 
Too few arguments to function CAllMain::IncludeComponent(), 1 passed in /home/bitrix/www/bitrix/templates/.default/header.php on line 125 and at least 2 expected (0)
/home/bitrix/www/bitrix/modules/main/classes/general/main.php:976
#0: CAllMain->IncludeComponent(string)
	/home/bitrix/www/bitrix/templates/.default/header.php:125
#1: require_once(string)
	/home/bitrix/www/bitrix/templates/main/header.php:5
#2: include_once(string)
	/home/bitrix/www/bitrix/modules/main/include/prolog_after.php:106
#3: require(string)
	/home/bitrix/www/bitrix/modules/main/include/prolog.php:11
#4: require_once(string)
	/home/bitrix/www/bitrix/header.php:1
#5: require(string)
	/home/bitrix/www/index.php:2

  • Вопрос задан

    более трёх лет назад

  • 466 просмотров

Пригласить эксперта

Покажите что у вас в строке

/home/bitrix/www/bitrix/templates/.default/header.php on line 125

Но вероятно, подключаемая область, её нужно подключить так:

$APPLICATION->IncludeComponent("НАЗВАНИЕ", "", array());

  • Показать ещё
    Загружается…

04 июн. 2023, в 12:23

30000 руб./за проект

04 июн. 2023, в 12:18

20000 руб./за проект

04 июн. 2023, в 12:07

2000 руб./за проект

Минуточку внимания

Проверьте не используют ли конфигурационные файлы битрикса /bitrix/php_interface/dbconn.php и /bitrix/.settings.php библиотеку mysql. Она не поддерживается уже давно, но в php7 уже нет механизма совместимости с ней.

Вам нужно перевести работу на библиотеку mysqli для этого в файле /bitrix/php_interface/dbconn.php вам нужно прописать строку:

define("BX_USE_MYSQLI", true);

И на всяки случай проверьте значение переменной $DBHost для работы на виртуалке от битрикса лучше всего чтобы было так:

$DBHost = "localhost";

А в файле /bitrix/.settings.php найти массив connections и в параметре className прописать вместо \Bitrix\Main\DB\MysqlConnection класс \Bitrix\Main\DB\MysqliConnection. Должно получиться так:

'connections' => 
  array (
    'value' => 
    array (
      'default' => 
      array (
        'className' => '\Bitrix\Main\DB\MysqliConnection',
        'host' => 'localhost',
        'database' => 'db_name',
        'login' => 'db_login',
        'password' => 'db_password',
        'options' => 2,
      ),
    ),
    'readonly' => true,
  ),

Как перевести сайт на Битриксе на новую версию php7. Решение с ошибками mysql

Вышел php7 и многие заявляют, что производительность 1С-Bitrix на этой версии php возросла.
Но если обновить php, то сайт перестанет работать.

Так же если вы развернули сайт несколько лет назад, ещё на Битрикс машине, например, CentOS-6-amd64-bitrix, то на большинстве хостингов уже нет возможности установить CentOS-6, есть только Битрикс машина CentOS-7. Но если развернуть бекап на свежей битрикс машине сайт снова не заработает.

Будет получен следующий набор ошибок при попытке открыть сайт:

[Error] Call to undefined function BitrixMainDBmysql_real_escape_string() (0) /home/bitrix/www/bitrix/modules/main/lib/db/mysqlsqlhelper.php:21 #0: BitrixMainDBMysqlSqlHelper->forSql(string) /home/bitrix/www/bitrix/modules/main/lib/db/sqlexpression.php:111 #1: BitrixMainDBSqlExpression->execPlaceholders(array) #2: preg_replace_callback(string, array, string) /home/bitrix/www/bitrix/modules/main/lib/db/sqlexpression.php:68 #3: BitrixMainDBSqlExpression->compile() /home/bitrix/www/bitrix/modules/main/classes/general/usertype.php:2913 #4: CAllSQLWhere->_ExprEQ(string, object) /home/bitrix/www/bitrix/modules/main/classes/general/usertype.php:3557 #5: CAllSQLWhere->addStringFilter(array, boolean, string, string, object) /home/bitrix/www/bitrix/modules/main/classes/general/usertype.php:3216 #6: CAllSQLWhere->GetQueryEx(array, array) /home/bitrix/www/bitrix/modules/main/classes/general/usertype.php:3101 #7: CAllSQLWhere->GetQuery(array) /home/bitrix/www/bitrix/modules/main/lib/entity/query.php:1119 #8: BitrixMainEntityQuery->buildJoin() /home/bitrix/www/bitrix/modules/main/lib/entity/query.php:1297 #9: BitrixMainEntityQuery->buildQuery() /home/bitrix/www/bitrix/modules/main/lib/entity/query.php:486 #10: BitrixMainEntityQuery->exec() /home/bitrix/www/bitrix/modules/main/lib/entity/datamanager.php:256 #11: BitrixMainEntityDataManager::getList(array) /home/bitrix/www/bitrix/modules/highloadblock/admin/menu.php:14 #12: include(string) /home/bitrix/www/bitrix/modules/main/interface/admin_lib.php:640 #13: CAdminMenu->_IncludeMenu(string) /home/bitrix/www/bitrix/modules/main/interface/admin_lib.php:418 #14: CAdminMenu->Init(array) /home/bitrix/www/bitrix/modules/main/interface/prolog_main_admin.php:30 #15: require_once(string) /home/bitrix/www/bitrix/modules/main/include/prolog_admin_after.php:15 #16: require(string) /home/bitrix/www/bitrix/modules/main/admin/update_system.php:31 #17: require_once(string) /home/bitrix/www/bitrix/admin/update_system.php:2

Или другие вариантов ошибок с подключением к Базе данных

 Все дело в том, что в php7 произошел переход на Mysqli. И чтобы заработал сайт, достаточно внести настройки в 2 файла движка Битрикс.

В файл  /bitrix/php_interface/dbconn.php
Добавить: define(«BX_USE_MYSQLI», true);

И в файл: /bitrix/.settings.php
Исправить строку: ‘className’ => ‘\Bitrix\Main\DB\MysqlConnection’, на ‘className’ => ‘\Bitrix\Main\DB\MysqliConnection’,

И ваш сайт на Битрикс будет работать на php7!

Оставить заявку

Я согласен на обработку персональных данных

Денис Бунаков

C 2012 года являюсь Битрикс Программистом.
Программист 1С:Битрикс – это веб-разработчик с узким профилем, который работает непосредственно с продукцией от компании 1С.

Переход битрикс на php7


[ParseError]
syntax error, unexpected end of file (0)
/home/site/docs/bitrix/modules/main/classes/mysql/agent.php(163) : eval()'d code:1
#0: CAgent::ExecuteAgents(string)
/home/site/docs/bitrix/modules/main/classes/mysql/agent.php:40
#1: CAgent::CheckAgents()
/home/site/docs/bitrix/modules/main/include.php:264
#2: require_once(string)
/home/site/docs/bitrix/modules/main/include/prolog_before.php:14
#3: require_once(string)
/home/site/docs/bitrix/modules/main/include/prolog.php:10
#4: require_once(string)
/home/site/docs/bitrix/header.php:1
#5: require(string)
/home/site/docs/index.php:2

Проявляется редко, причем не представляется возможным предугадать когда она появится, т.е. могу сидеть в админке несколько часов и ни разу, а могу из закладок один раз перейти на сайт и проявится. В техподдержку битрикс обращался, два дня переговоров, предоставил админ доступ, чего-то там смотрели и … «На данный момент не удается воспроизвести ошибку». На этом общение было закончено. В БД ошибок нет, как нет к сожалению и резервной доошибочной копии этой БД. Дату появления ошибки не знаю (и никто не знает). Может быть у кого-то было нечто похожее, подскажите в какую сторону смотреть (кроме указанных строк ошибок, там ничего подозрительного не высмотрел).

Ошибка несовместимости Битрикс и PHP 7.1+

При установке сайта на Битрикс на сервер с PHP 7.1 и выше сталкиваемся со следующей проблемой: в административном интерфейсе отваливается стартовый рабочий стол.

Битрикс оповещает об этом следующим экраном:

Идем в файл .settings.php, который находится в 16+ версии в следующей локации:
/bitrix/.settings.php

В конфиг-файле включаем вывод ошибок:

  'exception_handling' => array (
    'value' => array (
      'debug' => false,

После этого обновляем страницу административного интерфейса и видим вот это:

Таким образом, Битрикс хочет нам сказать, что у него возникла проблема несовместимости при обработке текстовых переменных в следующих скриптах:

[Error] 
[] operator not supported for strings (0)
/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/checklist.php:476
#0: CCheckListResult::GetList(array, array)
	/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/checklist.php:52
#1: CCheckList->__construct()
	/var/www/alkc/data/www/alkc/bitrix/gadgets/bitrix/admin_checklist/index.php:17
#2: include(string)
	/var/www/alkc/data/www/alkc/bitrix/components/bitrix/desktop/include.php:105
#3: BXGadget::GetGadgetContent(array, array)
	/var/www/alkc/data/www/alkc/bitrix/components/bitrix/desktop/component.php:823
#4: include(string)
	/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/component.php:548
#5: CBitrixComponent->__includeComponent()
	/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/component.php:600
#6: CBitrixComponent->includeComponent(string, array, boolean)
	/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/main.php:1035
#7: CAllMain->IncludeComponent(string, string, array, boolean, array)
	/var/www/alkc/data/www/alkc/bitrix/modules/main/interface/desktop.php:35
#8: require(string)
	/var/www/alkc/data/www/alkc/bitrix/admin/index.php:2

Чтобы исправить эту несовместимость идем по следующим адресам:

/bitrix/modules/iblock/classes/general/iblockproperty.php, здесь ищем 20 строку и в ней исправляем:

Было:

$arSqlSearch = "";

Стало:

$arSqlSearch = [];

Теперь идем в: /bitrix/modules/main/classes/general/checklist.php и вносим исправления здесь на 472 строчке, выполняем все так же:

Было:

$arSqlWhere = "";

Стало:

$arSqlWhere = [];

Ура! Все заработало.

Ошибка несовместимости Битрикс и PHP 7.1+

При установке сайта на Битрикс на сервер с PHP 7.1 и выше сталкиваемся со следующей проблемой: в административном интерфейсе отваливается стартовый рабочий стол.

Битрикс оповещает об этом следующим экраном:

Идем в файл .settings.php, который находится в 16+ версии в следующей локации:
/bitrix/.settings.php

В конфиг-файле включаем вывод ошибок:

  'exception_handling' => array (
    'value' => array (
      'debug' => false,

После этого обновляем страницу административного интерфейса и видим вот это:

Таким образом, Битрикс хочет нам сказать, что у него возникла проблема несовместимости при обработке текстовых переменных в следующих скриптах:

[Error] 
[] operator not supported for strings (0)
/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/checklist.php:476
#0: CCheckListResult::GetList(array, array)
	/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/checklist.php:52
#1: CCheckList->__construct()
	/var/www/alkc/data/www/alkc/bitrix/gadgets/bitrix/admin_checklist/index.php:17
#2: include(string)
	/var/www/alkc/data/www/alkc/bitrix/components/bitrix/desktop/include.php:105
#3: BXGadget::GetGadgetContent(array, array)
	/var/www/alkc/data/www/alkc/bitrix/components/bitrix/desktop/component.php:823
#4: include(string)
	/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/component.php:548
#5: CBitrixComponent->__includeComponent()
	/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/component.php:600
#6: CBitrixComponent->includeComponent(string, array, boolean)
	/var/www/alkc/data/www/alkc/bitrix/modules/main/classes/general/main.php:1035
#7: CAllMain->IncludeComponent(string, string, array, boolean, array)
	/var/www/alkc/data/www/alkc/bitrix/modules/main/interface/desktop.php:35
#8: require(string)
	/var/www/alkc/data/www/alkc/bitrix/admin/index.php:2

Чтобы исправить эту несовместимость идем по следующим адресам:

/bitrix/modules/iblock/classes/general/iblockproperty.php, здесь ищем 20 строку и в ней исправляем:

Было:

$arSqlSearch = "";

Стало:

$arSqlSearch = [];

Теперь идем в: /bitrix/modules/main/classes/general/checklist.php и вносим исправления здесь на 472 строчке, выполняем все так же:

Было:

$arSqlWhere = "";

Стало:

$arSqlWhere = [];

Ура! Все заработало.

  • #2

не нашел у себя ни в обновленных ни в старых битриксах всех редакций такого файла напишу общую рекомендацию
проверьте чтобы не присваивалось массиву булево значение
/home/bitrix/www/bitrix/modules/seo/lib/Sitemap/Job.php:72

$this->state = true;

должен быть

$this->state[] = true;

либо добавить проверку на тип данных
пусть присваиваем значение $value

if(is_array($value)){ $this->state = $value;}

Последнее редактирование:

  • #10

я на тестовый хостинг залил, в файле ошибок нет , видимо еще что-то, админка работает, кеши почистили?
а что показывает закладка сеть в браузере при открытии страницы сайта, на чем зависает?
выберите последний в пункте и выберите закладку «ответ» Для просмотра ссылки Войди или Зарегистрируйся
или ссылку на проект если он не локальном сервере
проверьте файл /bitrix/.settings.php у вас строка ‘debug’ => true, есть и вывод в консоль ‘log’ => NULL, ?

Последнее редактирование:

Я полный ноль в этом, прошу помочь…
Развернул резервную копию сайта на виртуальной машине…и сразу же появилась данная ошибка:

[ArgumentCountError] 
Too few arguments to function CAllMain::IncludeComponent(), 1 passed in /home/bitrix/www/bitrix/templates/.default/header.php on line 125 and at least 2 expected (0)
/home/bitrix/www/bitrix/modules/main/classes/general/main.php:976
#0: CAllMain->IncludeComponent(string)
	/home/bitrix/www/bitrix/templates/.default/header.php:125
#1: require_once(string)
	/home/bitrix/www/bitrix/templates/main/header.php:5
#2: include_once(string)
	/home/bitrix/www/bitrix/modules/main/include/prolog_after.php:106
#3: require(string)
	/home/bitrix/www/bitrix/modules/main/include/prolog.php:11
#4: require_once(string)
	/home/bitrix/www/bitrix/header.php:1
#5: require(string)
	/home/bitrix/www/index.php:2


  • Вопрос задан

  • 483 просмотра

Пригласить эксперта

Покажите что у вас в строке

/home/bitrix/www/bitrix/templates/.default/header.php on line 125

Но вероятно, подключаемая область, её нужно подключить так:

$APPLICATION->IncludeComponent("НАЗВАНИЕ", "", array());


  • Показать ещё
    Загружается…

21 сент. 2023, в 19:28

10000 руб./за проект

21 сент. 2023, в 19:06

11111 руб./за проект

21 сент. 2023, в 19:00

6000000 руб./за проект

Минуточку внимания

Понравилась статья? Поделить с друзьями:
  • Richedit line insertion error ошибка alex flasher
  • Require administrator privileges ошибка
  • Ricoh 161 ошибка sc322
  • Richtx32 ocx ошибка
  • Reptilicus ошибка при разборе ответа