ExBB Community » Файловый ExBB » Решение проблем » Function create_function() is Deprecated.

Страниц (2): « 1 [2]
 

16. 1Bot - 17 июля 2019 — 11:04 - перейти к сообщению
Speaker
Найдены несовместимые с PHP v7.2 участки кода в основном классе fm.
Сделана замена на анонимные функции устаревшей функции create_function().
Прикрепляю исправленный файл /include/fm.class.php из дистрибутива ExBB-2.0.0-Pre.
17. Speaker - 18 июля 2019 — 11:31 - перейти к сообщению
1Bot пишет:
Speaker
Найдены несовместимые с PHP v7.2 участки кода в основном классе fm.
Сделана замена на анонимные функции устаревшей функции create_function().
Прикрепляю исправленный файл /include/fm.class.php из дистрибутива ExBB-2.0.0-Pre.


fm.class.php заменил, этот вопрос снят. 1Bot, спасибо большущее!

Код в /common.php тоже заменил, но предупреждение Undefined offset: 2 in .../public_html/forum/include/common.php on line 46 осталась (только переместилась ниже на 46-ю строку).

Также изредка появляется предупреждение PHP Notice: A non well formed numeric value encountered in .../public_html/forum/profile.php on line 180

Вот 180-я строка в моем файле profile.php:
$days_reged = max(1, round(( time() - $user['joined'] ) / 86400));

Очень надеюсь на Вашу помощь.
18. Speaker - 18 июля 2019 — 11:57 - перейти к сообщению
electron пишет:
Speaker , в теме про версию 2.0 четко написано, что она еще очень сырая , нестабильная и наверняка содержит кучу ошибок. Разработчик этого релиза пока не рекомендовал ее ставить на живой форум


Спасибо за замечание, но хотелось получить сразу живой utf, а не танцы с бубном вокруг win1251. И в общем и целом форум работает, мелкие баги устраняем по ходу работы своими силами и с помощью сообщества.
19. 1Bot - 18 июля 2019 — 12:12 - перейти к сообщению
Speaker пишет:
Также изредка появляется предупреждение PHP Notice: A non well formed numeric value encountered in .../public_html/forum/profile.php on line 180

Вот 180-я строка в моем файле profile.php:
$days_reged = max(1, round(( time() - $user['joined'] ) / 86400));


Есть ошибка в файле /profile.php, чтобы исправить, нужно перенести строку 32
CODE:
$user['joined'] = $fm->_DateFormat($user['joined'] + $fm->user['timedif'] * 3600);

за строку, в которой возникало предупреждение
CODE:
$days_reged = max(1, round(( time() - $user['joined'] ) / 86400));

Прикрепляю исправленный файл.
20. 1Bot - 18 июля 2019 — 12:48 - перейти к сообщению
Speaker пишет:
еще одна некритическая ошибка, которую хотелось бы убрать.
Error_log пишет:
Undefined offset: 2 in ...public_html/forum/include/common.php on line 39

Если я правильно понимаю, что-то не так с форматом урла в админке. Пробовал переписать в файле header('Location: http://' . $set_url[2] на header('Location: https://' . $set_url[2] (сайт на https). В админке пробовал разные варианты url, но не помогло. Что тут можно сделать?


Да, тут проблема именно в том, что код написан именно под сайты форумов, которые работают по протоколу http, а не https, поэтому нужно изменить маски для поиска.
Думаю эта проблема еще встретится в других файлах форума.

Правки в прикрепленном файле ExBB-2.0.0-Pre/include/common.php.
21. Speaker - 21 июля 2019 — 19:42 - перейти к сообщению
1Bot, все сделал. Полет нормальный. В Error_log после суток прогона пусто. Если что-нибудь еще замечу, напишу, а пока спасибо огромное!
22. sqrt - 17 марта 2020 — 18:03 - перейти к сообщению
Speaker пишет:
1Bot

А что делать с этими файлами?

modules/threadstop/frontindex.php
modules/mailer/Mailer.Class.php

В них тоже есть create_function()

modules/mailer/Mailer.Class.php
Найти:
CODE:

uasort($list, create_function('$a, $b', 'if ($a[0] == $b[0]) return 0; return $a[0] < $b[0] ? -1 : 1;'));

Заменить на:
CODE:
uasort($list, function($a, $b) {if ($a[0] == $b[0]) return 0; return $a[0] < $b[0] ? -1 : 1;});

modules/threadstop/frontindex.php
Найти:
CODE:
uasort($array, create_function('$a,$b', $function));

Заменить на:
CODE:
uasort($array, function($a,$b) return $function);

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0181]     [ ]