Ошибка при переходе на версию php 8.0

Любые критические ошибки будут исправлены в течение 24-48 часов.
Аватара пользователя
support
Техническая поддержка
Сообщения: 9016
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Ошибка при переходе на версию php 8.0

Сообщение support »

tradesu писал(а): 15 янв 2024, 14:44
Сохранилась другая ошибка, но так же все работает, просто она отображается.
Жалуется на actions\ajax_request.php кричит на поля 779 и 781
Файл из архива замените в modules\dashboard\actions\
Вложения
ajax_request.zip
(1.61 КБ) 15 скачиваний
tradesu
Сообщения: 22
Зарегистрирован: 20 сен 2023, 12:21
Имя: Владимир Трейдер
Откуда: Москва

Re: Ошибка при переходе на версию php 8.0

Сообщение tradesu »

Спасибо, помогло!
Аватара пользователя
vgrachev
Сообщения: 102
Зарегистрирован: 22 фев 2022, 10:10
Имя: Валерий
Откуда: Ростов-на-Дону

Re: Ошибка при переходе на версию php 8.0

Сообщение vgrachev »

support писал(а): 14 янв 2024, 19:58 Все верно. Необходимо переделать ваш код. Теперь необъявленные элементы массива не допускаются. С помощью функции isset() нужно проверять наличие элемента и затем выполнять действие.
Приветствую всех, Сергей подскажите, а обязательно переходить на php8+ или на 74 будет работать? Что то так не хочется переходить...
nruslan2
Сообщения: 2418
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow
Контактная информация:

Re: Ошибка при переходе на версию php 8.0

Сообщение nruslan2 »

vgrachev писал(а): 17 янв 2024, 11:56 Приветствую всех, Сергей подскажите, а обязательно переходить на php8+ или на 74 будет работать? Что то так не хочется переходить...
Обязательно - в программе стоит проверка на версию PHP - если 3.5 запустить на php7.4 - будет пустая страница с ошибкой что версия не подходит.
tradesu
Сообщения: 22
Зарегистрирован: 20 сен 2023, 12:21
Имя: Владимир Трейдер
Откуда: Москва

Re: Ошибка при переходе на версию php 8.0

Сообщение tradesu »

support писал(а): 16 янв 2024, 07:28
tradesu писал(а): 15 янв 2024, 14:44
Сохранилась другая ошибка, но так же все работает, просто она отображается.
Жалуется на actions\ajax_request.php кричит на поля 779 и 781
Файл из архива замените в modules\dashboard\actions\
Спасибо Вам огромное!!! Новый фукционал шикарен. Успехов вам и вашему бизнесу!
tradesu
Сообщения: 22
Зарегистрирован: 20 сен 2023, 12:21
Имя: Владимир Трейдер
Откуда: Москва

Re: Ошибка при переходе на версию php 8.0

Сообщение tradesu »

Извините, что опять со своими вопросами.
Обнаружил еще одно сообщение при выводе конструктора отчетов:

Deprecated: round(): Passing null to parameter #1 ($num) of type int|float is deprecated in C:\Users\TRADESU\Documents\OpenServer\OpenServer\domains\localhost\crm\plugins\ext\classes\report_page\blocks_php.php(70) : eval()'d code on line 13


Полный код, который на 5 скрине:
$item_query = db_query("SELECT SUM(field_677) AS total FROM app_entity_48 WHERE field_895 = 76");

if ($item = db_fetch_array($item_query)) {
$total1 = $item['total'];
$a = round($total1, 2); // Округляем до двух десятичных знаков
echo '<b style="color: #0DC143;">Зачисления:</b> ' . number_format($a, 2, '.', ' ') . ' рублей' . '<br>' ;
}

$item_query = db_query("SELECT SUM(field_678) AS total FROM app_entity_48 WHERE field_898 = 76");

if ($item = db_fetch_array($item_query)) {
$total2 = $item['total'];
$b = round($total2, 2); // Округляем до двух десятичных знаков
echo '<b style="color: #EA4335;">Списания:</b> ' . number_format($b, 2, '.', ' ') . ' рублей' . '<br>' ;
}

$c = $a - $b;
$c = round($c, 2); // Округляем до двух десятичных знаков
echo '<b style="font-weight: 700; color: #2180e5; font-size: 18px;">Баланс счёта:</b> ' . '<b style="font-weight: 700; color: #000; font-size: 18px;">' . number_format($c, 2, '.', ' ') . '</b>' . ' рублей' ; // Форматируем число и добавляем разделители тысяч
Вложения
1.jpg
2.jpg
3.jpg
5.jpg
tradesu
Сообщения: 22
Зарегистрирован: 20 сен 2023, 12:21
Имя: Владимир Трейдер
Откуда: Москва

Re: Ошибка при переходе на версию php 8.0

Сообщение tradesu »

Переделал код и проблема ушла

// Запрос для зачисления
$item_query_credit = db_query("SELECT SUM(field_677) AS total FROM app_entity_48 WHERE field_895 = 78");

if ($item_credit = db_fetch_array($item_query_credit)) {
$total1 = $item_credit['total'];
$a = is_numeric($total1) ? round($total1, 2) : 0; // Округляем, если значение числовое, иначе устанавливаем 0
echo '<b style="color: #0DC143;">Зачислено:</b> ' . number_format($a, 2, '.', ' ') . ' рублей' . '<br>';
} else {
$a = 0; // Устанавливаем значение по умолчанию
echo '<b style="color: #0DC143;">Зачислено:</b> 0 рублей<br>';
}

// Запрос для списания
$item_query_debit = db_query("SELECT SUM(field_678) AS total FROM app_entity_48 WHERE field_898 = 78");

if ($item_debit = db_fetch_array($item_query_debit)) {
$total2 = $item_debit['total'];
$b = is_numeric($total2) ? round($total2, 2) : 0; // Округляем, если значение числовое, иначе устанавливаем 0
echo '<b style="color: #EA4335;">Списано:</b> ' . number_format($b, 2, '.', ' ') . ' рублей' . '<br>';
} else {
$b = 0; // Устанавливаем значение по умолчанию
echo '<b style="color: #EA4335;">Списано:</b> 0 рублей<br>';
}

// Вычисляем баланс
$c = is_numeric($a) && is_numeric($b) ? round($a - $b, 2) : 0; // Округляем, если значения числовые, иначе устанавливаем 0

// Выводим баланс
echo '<b style="font-weight: 700; color: #2180e5; font-size: 18px;">Баланс счета:</b> ' . '<b style="font-weight: 700; color: #000; font-size: 18px;">' . number_format($c, 2, '.', ' ') . '</b>' . ' рублей';
Ответить