Почему выдается эта ошибка
Эта ошибка возникает, когда запись в таблицах переменных Drupal имеет неправильный формат.Это часто происходит, если ваш хост автоматически устанавливает вашу установку Drupal и делает это неправильно (как мой хост любит делать) или если переменные не были созданы должным образом.
Определите искаженную переменную
Я создал модуль, но вы можете просто записать его в поле ввода фильтра PHP, например, в узел или блок (очевидно, вам понадобится модуль ядра «Фильтр PHP»).
Этот код выведет содержимое таблицы переменных, поэтому не делайте этого на производственном сайте:
drupal_set_message(db_query('SELECT name, value FROM
{variable}')->fetchAllKeyed() );
Тогда вы можете просто перейтичерез список и найти тот, который искажен.
Как узнать, какая переменная искажена
Каждая строка имеет один из этих форматов.Каждый имеет 2 параметра, разделенных двоеточиями.2-е и 3-е поля являются значениями и различаются в зависимости от имени переменной, если они находятся приблизительно в одном из этих форматов, они должны быть в порядке:
s:16:"this is a string"
s isдля строки.16 - это количество символов в строке.Третий параметр - это значение в двойных кавычках.
i:10
i для целых чисел.10 - значение целого числа.
b:0
b для логического значения.0 - это значение
a:0:{}
a для массива.0 - количество элементов, а третий параметр - массив.Массив может содержать любой из указанных выше типов данных (даже другой массив).
Переменная, которая не принадлежит ни одному из вышеуказанных форматов, имеет неправильный формат.
Исправление некорректной переменной
Вы должны быть в состоянии изолировать проблему, и если это переменная типа "site_name" или "site_mail", вы можете исправить это, обновив страницу конфигурации, гдеэта переменная установлена (например, Информация о сайте).Если искаженная переменная не та, которую вы узнаете:
Поместите строку кода, подобную этой, в вход модуля или фильтра PHP.
set_variable ('the_name_of_the_malformed_variable', 'the_value_you_think_it_should_be');
Запустите его один раз, а затем удалите, ваша ошибка должна быть исправлена.
Следуйте вышеизложенному на свой страх и риск.Если у вас есть проблемы, оставьте комментарий ниже.