@melodze

Проблема с PHP на битрикс. Что делать?

Fatal error: Only variables can be passed by reference in /home/r/rezink8a/bitrix.gidros.org/public_html/bitrix/modules/vote/install/index.php on line 169

Вот такую ошибку выдаёт при попытке войти в админку битрикса.

Вот код около 169 строки:

if($GLOBALS["install_public"] == "Y" && !empty($GLOBALS["public_dir"]))
		{
			$sites = CLang::GetList('', '', Array("ACTIVE"=>"Y"));
			while($site = $sites->Fetch())
			{
				if(file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/vote/install/public/".$site["LANGUAGE_ID"]))
					CopyDirFiles($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/vote/install/public/".$site["LANGUAGE_ID"], $site['ABS_DOC_ROOT'].$site["DIR"].$GLOBALS["public_dir"], $bReWriteAdditionalFiles, true);
			}
		}


169 строка:
$sites = CLang::GetList('', '', Array("ACTIVE"=>"Y"));
  • Вопрос задан
  • 274 просмотра
Решения вопроса 2
Adamos
@Adamos
Проблема обусловлена, с одной стороны, обновлением версии РНР, а с другой - старой версией Битрикса.
Учитывая, что этот модуль vote - это самая знаменитая дыра в Битриксе за последние годы... скажем так, ваши проблемы могут быть немножко больше, чем вам, возможно, кажется.

Мой сайт на Битриксе боты долбят в давно залатанные дыры по десять раз на дню, например.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Читаем сигнатуру функции:
CDBResult
CLanguage::GetList(
    string &by = "lid",
    string &order = "asc",
    array filter = array()
)
Видим, что два первых параметра передаются по ссылке (&). Значит использовать в качестве аргументов можно только переменные, но не константы, о чём и говорит ошибка.
--$sites = CLang::GetList('', '', Array("ACTIVE"=>"Y"));
++$sites = CLang::GetList($by = '', $order = '', Array("ACTIVE"=>"Y"));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы