@cs-cart_team
Добрый день!
Обнаружили ошибку в CS-Cart 4.20.1 при работе под PHP 8.x.
Файл: app/controllers/frontend/products.php, строка 281
Ошибка:
PHP Warning: Undefined array key "obj_prefix"
Причина:
При обработке dispatch=products.subscription_form параметр obj_prefix считывается из $_REQUEST без проверки существования:
Tygh::$app['view']->assign('obj_prefix', $_REQUEST['obj_prefix']);
Параметр obj_prefix добавляется JavaScript-ом на стороне клиента и не передаётся при прямых HTTP-запросах — в частности, при обходе страниц поисковыми ботами (Googlebot). В PHP 7.x это проходило молча, в PHP 8.x генерирует Warning.
За сутки: 503 записи в nginx error.log только с одного сайта.
Предлагаемое исправление:
// Было:Tygh::$app['view']->assign('obj_prefix', $_REQUEST['obj_prefix']);
// Стало:Tygh::$app['view']->assign('obj_prefix', $_REQUEST['obj_prefix'] ?? '');
Просим включить исправление в следующий патч.
Спасибо!