Спасите, как исправить ошибку в D7 Notice: unserialize() [function.unserialize]: Error at offset 2 of 21 bytes in variable_initialize() (line 1174 of /home/user4344/public_html/includes/bootstrap.inc).

Главные вкладки

Комментарии

Аватар пользователя Skynetb Skynetb 3 августа 2017 в 18:30

Точно, так и есть. И косякнул я сам. Дело было так. Забыл пароль от админки, поменял в базе email, востановил пароль и эта хрень начала вылазить. Буду читать как востановить пароль прямо, а не через эадний проход.
Спасибо.

Аватар пользователя gun_dose gun_dose 3 августа 2017 в 22:38

У меня была такая хрень. Проблема вот в чём - в некоторых переменных могут быть прописаны пути к файлам. В путях есть имя пользователя в системе. И если на новом хостинге количество символов в имени пользователя другое, то произойдет ошибка десериализации. Я такое решил, выкачав блобы переменных и в текстовом редакторе подправил их, а потом залил обратно, там было всего штук 5 таких переменных, заняло минут 10. Но как вариант, можно анинсталлить модули, которые задают эти переменные, а потом включить их обратно.

Аватар пользователя Semantics Semantics 3 августа 2017 в 23:56

Ошибка десериализации произойдёт если вот так вот руками править, как вы советуете, не обращая внимание на длину и тип переменной.
Если длина строки не будет совпадать с объявленной длиной - ошибка десериализации.
Если руками изменяешь, то нужно пересчитывать посимвольно.
Изменение путей и прочих значений переменных вообще не относится к этой ошибке.

Аватар пользователя gun_dose gun_dose 4 августа 2017 в 7:40

Вы не поняли. При переносе баз хостеры прогоняют базы скриптом, который меняет старые абсолютные пути на новые, естественно, он просто меняет один текст на другой, не вникая, сериализован он или нет. И вот после этого и приходится вручную править параметр длины строк.