Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ошибка при переносе форума из vB на IPB

Опубликовано:

Здравствуйте возникла проблема при переносе форума из vBulletin 4.0.3 на IPB 3.2.3, пользуюсь официальным конвертером, все идет нормально до тех пор, пока в одной из таблиц конвертер не сталкивается с русскими буквами, тогда выдается ошибка: "Возникла ошибка при работе с базой данных. К сожалению, на данный момент из-за технических проблем с базой данных, форум не может обработать ваш запрос. О проблеме уже сообщено администрации форума. Приносим свои извинения за причиненные неудобства", таблицы воблы изначально были в utf8, но даже после изменения кодировки на cp1251, ошибка не уходит. Прошу помощи!

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

Опубликовано:

Покажите проблемный запрос из логов /cache/sql_error*

Опубликовано:
  • Автор

Вот:

 

Date: Fri, 09 Mar 2012 11:30:17 +0000
Error: 1366 - Incorrect string value: '\xF0\xB0\xF0\xBB\xF0\xB5...' for column 'members_l_display_name' at row 1
IP Address: 127.0.0.1 - /admin/index.php?adsess=ae443e61339f82dc47cad6ff98b29222&app=convert&app=convert&module=board&section=vbulletin&do=members&st=&cycle=250&total=72
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mySQL query error: INSERT INTO ipbmembers (`title`,`last_visit`,`last_activity`,`last_post`,`posts`,`time_offset`,`bday_day`,`bday_month`,`bday_year`,`ip_address`,`misc`,`warn_level`,`conv_password`,`name`,`member_group_id`,`email`,`joined`,`member_login_key`,`member_login_key_expire`,`members_display_name`,`members_seo_name`,`members_l_display_name`,`members_l_username`,`members_pass_hash`,`members_pass_salt`,`mgroup_others`,`allow_admin_mails`) VALUES('????????N?????',1285963446,1285965180,1285962360,2,3,0,0,0,'94.233.112.166','',0,'8f7d52e1e86a3d077cfa9ee69d77517c','?°?»?µ??N??µ??',3,'XsilentXwindX@yandex.ru',1285958040,'b34065b5c3c9fbbcf43bab86e27c3988',1331897417,'?°?»?µ??N??µ??','%d0%b0%d0%bb%d0%b5%d0%ba%d1%81%d0%b5%d0%b9','?°?»?µ??n??µ??','?°?»?µ??n??µ??','','','',1)
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File                                                                       | Function                                                                      | Line No.          |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| Z:\home\192.168.0.111\www\admin\applications_addon\ips\convert\sources\lib_master.php| [db_main_mysql].insert                                                        | 1383              |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| Z:\home\192.168.0.111\www\admin\applications_addon\ips\convert\modules_admin\board\vbulletin.php| [lib_master].convertMember                                                    | 783               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
|                                                                            | [admin_convert_board_vbulletin].convert_members                               |                   |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| Z:\home\192.168.0.111\www\admin\applications_addon\ips\convert\modules_admin\board\vbulletin.php| [].call_user_func                                                             | 195               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| Z:\home\192.168.0.111\www\admin\sources\base\ipsController.php              | [admin_convert_board_vbulletin].doExecute                                     | 302               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

Опубликовано:

Судя по всему данные в одной кодировке, сравнение у таблицы другая, а из бд данные запрашиваются еще в какой-то кодировке. Тут даже у этой строки пакоцаная кодировка "\xF0\xB0\xF0\xBB\xF0\xB5".

Капайте в ее сторону.

Опубликовано:
  • Автор

Хм, понятно, что копать нужно в эту сторону. Уже и так стоят кодировки обоих баз cp1251, всех таблиц в базах cp1251 и у всех полей в таблицах тоже cp1251. Куда дальше копать, что-то непонятно. Может быть где то в конвертере надо выставить cp1251?

Опубликовано:

Через phpmyadmin в таблице пользователей vB нормально видны ники?

 

Уже и так стоят кодировки обоих баз cp1251,

Конвертер работает только с базами в UTF8, о чем четко написано в инструкции - "если сторонняя база не в UTF8 - её надо перекодировать перед конвертированием". А вы сделали диаметрально противоположное. Вот только скрипт при старте выполняет "set names", и, естественно, давится кракозябрами.

Опубликовано:
  • Автор

Спасибо за разъяснения, но, к сожалению, и в этой кодировке работать не хочет в логах все тоже. Вот скрины:

 

8da3115c0892.jpg

 

11f6ba382c71.jpg

 

62544e41d37f.jpg

 

Опубликовано:

В данной ситуации все довольно сложно. Я могу сказать, как обойти конкретно данную ошибку - нужно в файле

/upload/admin/applications_addon/ips/convert/sources/lib_master.php найти и закомментировать эти строки:

	$members['members_l_display_name']	= strtolower($displayname);
	$members['members_l_username']		= strtolower($username);

А потом, уже после конвертирования, выполнить пару дополнительных SQL-запросов.

 

Но сам факт, что на этом этапе у вас на входе микс из разных кодировок, и strtolower крошит все в еще большее мессиво, как бы намекает, что все конвертирование скорее всего так просто успехом не закончится. Более того, если у вас после приведения двух баз к utf8 осталась в точности такая же ошибка конвертирования, то новости еще хуже - сам IP.Board явно использует не utf8 при взаимодействии с MySQL, что, скорее всего, не позволит ему нормально работать, а в результате конвертирования вы получите форум с кракозябрами и вопросиками...

 

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

Опубликовано:
  • Автор

Спасибо огромное базу перенес, хоть и с горем пополам. Но проблемка все же есть, во всех таблицах данные есть и они читабельны, в АЦ тоже все читабельно, а вот на главной форума не отображается ни категорий, ни тем. Кеш чистил, статистику пересчитывал, конвертер заблокировал. Что сделал не так?

Опубликовано:

Права форумов настроили?

Опубликовано:
  • Автор

Совсем про это забыл :rolleyes: Осталась одна проблемка: новых пользователей не показывает в списке пользователей, там висит только мой ник

Опубликовано:

"Пара запросов", которые надо было выполнить, раз уж вы пошли таким путем:

 

UPDATE members SET members_l_display_name = LOWER(members_display_name), members_l_username = LOWER(name);

Опубликовано:
  • Автор

Не дождался вашего сообщения, сделал все ручками. :) Спасибо за помощь.

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.