Перейти к контенту
  • 0

Argument is not an array


Вопрос

Чёрт, видела похожую тему здесь, но не могу найти, и поиск по форуму ничего не дал. Если что - объедините плиз...

В общем, в январе после неизвестно чего (ни регистрации новых юзверей не было, ни новых сообщений) мой форум стал выдавать такую ошибку:

 

IPB Предупреждение [2] array_merge() [function.array-merge]: Argument #2 is not an array (Строка: 417 файла \sources\classes\class_session.php)

 

Fatal error: Class 'skin_global_' not found in Z:\home\localhost\www\oguran\sources\ipsclass.php on line 1411

 

Установка безопасного режима скинов результатов не дала. В ipsclass прописано CACHE_PATH."cache/skin_cache/cacheid_".$id."/skin_global.php", то есть почему оно не подхватывает id скина - непонятно. Работала только одна ссылка - ссылка смены скина, причём "IPB Предупреждение" так и отображается наверху форума, а видно только сообщение "Вам запрещено использовать эту функцию форума". Сейчас локально на денвере даже эта ссылка не работает.

 

Ссылку на форум дать не могу, ибо снесла и поставила новый, но всё-таки интересно докопаться до сути, в чём же проблема.

Ссылка на комментарий
Поделиться на других сайтах

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

  • 0
Проблема в первой строчке, не прочитывается флаг выбора скина из базы. Также бывает при повреждении настроек дефолтного скина.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
В общем, в январе после неизвестно чего (ни регистрации новых юзверей не было, ни новых сообщений) мой форум стал выдавать такую ошибку:

 

php5 поставили

Ссылка на комментарий
Поделиться на других сайтах

  • 0
О_о тогда почему на денвере, где ничего не менялось, июльский дамп поднимается, а январский выдаёт ту же ошибку?
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Может стоит сказать наконец, что на этой строке написано? :D

http://ibresource.ru/forums/blog/arhar/?showentry=135, п. 2.2.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Ну нету в файле ошибок, не-ту! Не изменяли файлы, и при заливке чистых файлов из дистрибутива ошибка не исчезает!
Ссылка на комментарий
Поделиться на других сайтах

  • 0

А кто сказал, что там есть ошибка? Предупреждение возникает из-за того, что какие-то данные из БД не получены, судя по всему. Чтобы это определить, нужно знать, что у вас в этой строке, где происходит затычка с массивом.

 

"Любите кататься -- любите и саночки возить." Вы просили помочь, мы задаём вопросы, чтобы понять проблему, мы не телепаты. Если вы считаете, что и без нас можете определить в чём дело, зачем задавать вопросы? :D Давайте уважать друг друга, иначе проблема так и останется не решённой.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

АЦ -> Настройки -> Управление кешем -> group cache - меню -> Обновить.

 

Если не поможет, перед этой строчкой напишите:

print_r($this->ipsclass->cache['group_cache']);

и напишите что выведется.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

При попытке зайти в АЦ выдаётся та же ошибка, вернее, только её вторая часть - про ipsclass.php.

 

После добавления указанного в class_sessions.php текст ошибки стал таким:

 

Array ( ) IPB Предупреждение [2] array_merge() [function.array-merge]: Argument #2 is not an array (Строка: 417 файла \sources\classes\class_session.php)

 

Fatal error: Class 'skin_global_' not found in Z:\home\localhost\www\oguran\sources\ipsclass.php on line 1411

 

Ещё. В безопасном режиме скинов ошибка (в том числе и при попытке попасть в АЦ) вот такая:

mySQL query error: SELECT * FROM ibf_skin_templates_cache WHERE template_set_id= AND template_group_name='skin_global'

 

SQL error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND template_group_name='skin_global'' at line 1

Ссылка на комментарий
Поделиться на других сайтах

  • 0

1. Как вы включили безопасный режим скинов, если у вас нет доступа в АЦ?

 

2. Путём подбора id скина воспользуйтесь советом из http://www.ibresource.ru/forums/index.php?...st&p=166615, первое сообщение. Получится открыть форум таким образом?

 

3. Проще всего написать мне в ПМ, своими руками это быстрее решается.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Sannis

1. В ipsclass прописала $this->vars['safe_mode_skins'] == 1. Раньше при глюках скинов это всегда помогало.

 

2. Пробовала ещё когда форум был в сети. Отображалось сообщение "Вам запрещено использовать эту функцию форума" и форма логина. При попытке залогиниться опять выскакивало то же сообщение. Любые другие ссылки выдавали тот же argument is not an array. Увы, скрин сделать не могу, потому что на денвере даже по ссылке смены скина выдаётся argument is not an array. (Вообще я уже писала это в первом посте темы)

 

3. Я вам в ПМ писать боюсь, глядя на вашу подпись. О_о

Ссылка на комментарий
Поделиться на других сайтах

  • 0

2. Значит нужно руками в БД править id скина по умолчанию в настройках, таблице скинов и пользователей, в кеше. А судя по Array( ) у вас кеш повреждён, так что только усложняет дело.

 

3. Я уговаривать вас не буду, не мне это нужно.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Напишите ещё, какие данные у вас есть в таблице ibf_cache_store.

 

 

Насчёт конкретных мест в таблицах. В примерах ниже ## -- номер скина, который точно работающий. Т.е. того скина, чьи шаблоны есть в таблицах ibf_skin_templates_cache и ibf_skin_templates, либо папка кеша существует, смотря на каком варианте относительно безопасного режима вы остановились.

 

Пользователи. Можно установить этот скин всем:

UPDATE ibf_members SET skin=##;

или сбросить на скин по умолчанию:

UPDATE ibf_members SET skin=0;

 

Скин по умолчанию. Тут есть сложность. Изменить скин по умолчанию легко, см. таблицу ibf_skin_sets:

UPDATE ibf_skin_sets SET set_default=0;
UPDATE ibf_skin_sets SET set_default=1 WHERE set_skin_set_id=##;

После этого нужно обновить кеш. Открываем ibf_cache_store, ищем запись с cs_key=skin_id_cache, открываем редактирование, и там также для каждого скина в строчке

s:11:"set_default";s:1:"*";

ставим

s:11:"set_default";s:1:"0";

, а у нужного скина

s:11:"set_default";s:1:"1";

Чтобы не ошибиться, советую сделать копию этого поля в файл и редактировать не фрагмент а только эту цифру.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Первые два пункта сделала, а потом, видимо, чего-то не понимаю, потому как при открытии редактирования того, что вы сказали, получается вот что:

http://i64.photobucket.com/albums/h199/middlee/sql.jpg

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ага, значит кеш таки сломался. На форуме проскакивала утилита для восстановления, но можно сделать проще: поствать на локалке в другую папку и БД ещё один форум и взять значение этого поля оттуда.

 

Напишите ещё, какие данные у вас есть в таблице ibf_cache_store.

Таки да, в остальных строках кеша такая же штука?. В таблице ibf_skin_templates есть шаблоны?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Напишите ещё, какие данные у вас есть в таблице ibf_cache_store.

Просто скрин предоставлю: http://i64.photobucket.com/albums/h199/mid...cache_store.jpg

Но это до указанных ниже изменений. Сейчас всё выглядит так:

http://i64.photobucket.com/albums/h199/mid...ache_store1.jpg

 

В таблице ibf_skin_templates есть шаблоны?

Есть.

 

Так. Попробовала вставить в cs_value значения из более раннего, рабочего бэкапа, теперь загружается форма логина с подписью "Вам запрещён доступ в этот форум". Вверху над форумом маячит строка "Argument is not an array". После залогинивания снова отображает форму логина с подписью "Вам запрещён доступ в этот форум".

 

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0
-= здесь был Мах =-

Похоже на взлом :D

 

В таблице groups есть записи? В таблице forums? Если нет, то данные о них потерялись, плохо. Можно либо из более раннего бекапа восстановить, либо... Группы можно создать заново, а вот с форумами придётся тогда повозиться.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Это не взлом, это один из админов в блокноте в админцентре оставил ещё года полтора назад, а я убирать не стала - так и висит до сих пор. Сами же видите - поле adminnotes.

И в groups, и в forums записи есть, ничего не потерялось. А вот в админке в управлении форумами пусто. В управлении группами всё нормально, а форумы не отображаются.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Ага, значит под словами "обновила кеши" имеются в иду кеши скинов? Обновите все кеши на странице управления кешем закладки "Настройки" АЦ.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ну, речь шла о скинах, потому обновляла скины...

Теперь обновила все. Вижу разделы в управлении форумами.

 

Удаётся зайти на сам форум. На каждой странице вверху отображается некий текст. Он большой и с форматированием, потому прикрепляю RTF файлом.

 

Ниже отображаются все страницы как положено, разве что слова "Вошли как:" или "Здравствуйте, гость" почему-то синим цветом. Залогиниться удаётся, но при переходе на другую страницу распознаёт опять как гостя (но думаю, что в данном случае это наименьшая проблема).

 

Темы работают только по ссылкам вида index.php?showtopic=ХХХ(&st=YYY), а по ссылкам, заканчивающимся на &view=getnewpost, отображается только тот текст, что в прикреплённом файле. Разделы открываются нормально. (За исключением текста вверху страницы).

Array.rtf

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Текст есть -- значит кеш обновился, можно print_r убрать из файла.

 

Что белать с белой страницей -- написано в FAQ.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Убрала, текст убрался, ссылки с &view=getnewpost заработали... В общем, всё работает нормально. Думаю, FAQ и не понадобится...

Спасибо огромное! :D Остальное - в личке.

Ссылка на комментарий
Поделиться на других сайтах

Гость
Эта тема закрыта для публикации сообщений.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.