Типичные ошибки opencart (ocstore) NOTICE: UNSERIALIZE() [FUNCTION.UNSERIALIZE]: ERROR AT OFFSET INDEX.PHP ON LINE 45 HEADER.PHP ON LINE 43 INDEX.PHP ON LINE 61
Опубликовано: 06.09.2018
Продолжаем исправлять ошибки Opencart (ocstore) версий 1.5хх. Данная ошибка OPENCART NOTICE: UNSERIALIZE() [FUNCTION.UNSERIALIZE]: ERROR AT OFFSET INDEX.PHP ON LINE 45 HEADER.PHP ON LINE 43 INDEX.PHP ON LINE 61 и похожие возникают зачастую (а на практике в последнее время почти всегда) при переносе сайта или каких нибуть действиях с базами данных.
В сети есть множество способов исправления данной ошибки – данные разрозненные и, зачастую, не актуальные, так как в них обычно описывается частичный, самый примитивный, случай с самым простым лечение.
Я же попробую описать самый универсальный способ исправления ошибки Notice: unserialize() [function.unserialize]: Error at offset … of … bytes in /admin/index.php on line …
Настройка вкладки Категории и наценки в АОП #55 (ocStore, Opencart)
Для начала, стоит определиться, какой модуль вызывает такую ошибку. Сразу же скажу, что всегда проблема кроется в базе данных в таблице oc_settings (префикс может быть другой) в колонке serialized.
Чтобы определить проблему, нужно в файле
Как защитить магазин на Opencart 2 (OcStore 2.0.2.1) от взлома #8
/admin/index.php
Строка примерно 45
$ config -> set ( $ setting [ 'key' ] , unserialize ( $ setting [ 'value' ] ) ) ; |
меняем на время на:
$ config -> set ( $ setting [ 'key' ] , unserialize ( $ setting [ 'value' ] ) ) ; if ( ! unserialize ( $ setting [ 'value' ] ) ) echo $ setting [ 'key' ] . "==>" . $ setting [ 'value' ] . " " ; |
После чего, зайдя в настройки магазина или на страницу модулей, мы сразу увидим расширенную информацию об ошибке, на основании, которой можно узнать в каком месте проблема. Если проблема в модулях, то достаточно просто удалить и установить заново данный модуль, если проблема в общих настройках, то придется удалят строчку с ошибкой из базы данных.
После того как ошибка Notice: unserialize() [function.unserialize]: Error at offset … of … bytes in /admin/index.php on line … исчезнет можно вернуть в исходное состояние файл index.php