Перейти к содержанию

В режиме maintenance_mode на PHP 8.1 Ошибка: preg_replace(): Passing null to parameter #3


Рекомендуемые сообщения

Версия Opencart: 3.0.3.8-ce.1.4 

Версия PHP: 8.1 

В режиме: maintenance_mode (Режим обслуживания)
Вылезает ошибка:

Unknown: preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in D:\LocalServer\home\site.loc\storage\modification\system\engine\action.php on line 65

На PHP 7.4  - ошибки нет.
 

UPD:  В итоге, в файле system/engine/action.php добавил защиту от null и нестроковых значений:
 

Заменил

$this->id = $route;


На
 

$this->id = $route ?? '';

 

Заменил

$parts = explode('/', preg_replace('/[^a-zA-Z0-9_\/]/', '', (string)$route));


На
 

$route = (string)($route ?? '');
$parts = explode('/', preg_replace('/[^a-zA-Z0-9_\/]/', '', $route));

 

Заменил

$class = 'Controller' . preg_replace('/[^a-zA-Z0-9]/', '', $this->route);


На

$class = 'Controller' . preg_replace('/[^a-zA-Z0-9]/', '', (string)$this->route);

 

Изменено пользователем ares
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...