Нотис Trying to access array offset on value of type bool in...

Чистая система 2.13.1 выдает нотис

#1 22 апреля 2020 в 17:55
Чистая система 2.13.1 на PHP 7.4 выдает в админке
Notice: Trying to access array offset on value of type bool in /sites/cherkasy.org.ua/system/controllers/admin/frontend.php on line 139

Вот эта строка
  1. $current_load_average = round(100*($la[2]/$cpu_count));
Что с этим делать?
#2 22 апреля 2020 в 18:28
Pascal,
Ваш хостинг не отдаёт sys_getloadavg.
Напишите в той строке:
  1. $current_load_average = 15;
Или любое другое число до ста, которое Вам нравится.
#3 22 апреля 2020 в 18:37
Спасибо пропало предупреждение. Я сам себе хостинг, решил на PHP 7.4 сайт перевести. В установках веб сервера это можно настроить?
#4 22 апреля 2020 в 18:43
Pascal, можно посмотреть php.ini на предмет разрешена ли функция sys_getloadavg
---
Смотреть строку, которая начинается
disable_functions =
#5 22 апреля 2020 в 19:19


Pascal, можно посмотреть php.ini на предмет разрешена ли функция sys_getloadavg
---
Смотреть строку, которая начинается
disable_functions =

@IamB
Есть такая функция в настройках PHP, насколько я понимаю эта директива позволяет отключить определенные функции по соображениям безопасности, там пишутся разделенные запятыми список имен функций, нет?
Fuze делал компонент по мониторингу перегрузок на базе функции php: sys_getloadavg.
#6 22 апреля 2020 в 19:33

Есть такая функция в настройках PHP, насколько я понимаю эта директива позволяет отключить определенные функции по соображениям безопасности, там пишутся разделенные запятыми список имен функций, нет?

Pascal
Если у вас эта функция там есть, то просто аккуратно её оттуда уберите. Мы же не станем спорить с авторами CMS по вопросам безопасности?
Как уберёте, файл frontend.php можно привести к прежнему виду и всё должно работать.
#7 22 апреля 2020 в 19:42


Есть такая функция в настройках PHP, насколько я понимаю эта директива позволяет отключить определенные функции по соображениям безопасности, там пишутся разделенные запятыми список имен функций, нет?

Pascal
Если у вас эта функция там есть, то просто аккуратно её оттуда уберите. Мы же не станем спорить с авторами CMS по вопросам безопасности?
Как уберёте, файл frontend.php можно привести к прежнему виду и всё должно работать.

@IamB
В быстрых настройках веб панели там пусто. В файле php.ini
  1. ; This directive allows you to disable certain functions for security reasons.
  2. ; It receives a comma-delimited list of function names.
  3. ; http://php.net/disable-functions
  4. ;disable_functions =
Что убрать фрагмент в файле?
#8 22 апреля 2020 в 19:51
Pascal, я вас неправильно понял, у вас
disable_functions =
вообще закомментировано. Попробуйте поискать поисковиком: не работает sys_getloadavg в такой-то панели
#9 22 апреля 2020 в 19:54
Сменил версию PHP на 7.3.4 и предупреждение исчезло. Настройки 7.4.1 были стандартные по умолчанию. Вопрос совместимости с 7.4.1 остаётся открытым?
#10 22 апреля 2020 в 19:57


Pascal, я вас неправильно понял, у вас
disable_functions =
вообще закомментировано. Попробуйте поискать поисковиком: не работает sys_getloadavg в такой-то панели

@IamB
Да закомментирована функция.
#11 23 апреля 2020 в 09:46
Pascal, вы можете провести небольшой тест, выполнив под 7.4 такой скрипт
  1.  
  2. <?php
  3. if (function_exists('sys_getloadavg')) {
  4. echo "Функция доступна.";
  5. } else {
  6. echo "Функция недоступна.";
  7. }
  8.  
Но стоит иметь в виду, что

Обратите внимание, что название функции может присутствовать, даже если саму функцию невозможно использовать из-за настроек конфигурации или опций компиляции (например, как для функций image).

#12 23 апреля 2020 в 18:51


Pascal, вы можете провести небольшой тест, выполнив под 7.4 такой скрипт

  1.  
  2.  
  3.  

@IamB

Сделал. Ответ: "Функция доступна".
#13 23 апреля 2020 в 19:19
Pascal, отлично. Посмотрите, если уже не видели, здесь.
Ваш случай с большой вероятностью: "функцию невозможно использовать из-за настроек конфигурации или опций компиляции".
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.