Ковертор БД Vbulletin 3.7.1 -> phpbb3
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
MyMan
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 17 лет 3 месяца
- Поблагодарили: 2 раза
Ковертор БД Vbulletin 3.7.1 -> phpbb3
Здравствуйте! Столкнулся с такой проблемой, необходима конвертация базы Воблы в pypbb3.
Не спешите отправлять меня в определенный темы и посик. Все, что есть на вашем форуме я уже нашел, но это не помогло!
В этой теме рассказывается как конвертнуть Воблу сначала в phpbb2, а потом в phpbb3:
http://www.phpbbguru.net/community/topic14590-15.html
Но для форума 3.7 этот конвертор не подошел, он написал кучу ошибок и искалечил базу.
Мне пришлось обратится к форуму phpbb.com и вот что я там отрыл:
http://www.phpbb.com/community/viewtopi ... 5&t=557811
Этот конвертор конвертит сразу в phpbb3, но для форума 3.7 он тоже не подошел, так как в этом форуме разработчики переименовали таблицу юзеров и наделали много другого. и я в этом же топике нарыл более свежий конвертор:
http://www.phpbb.com/community/viewtopi ... 0#p5862045
он подходит для форумов и 3.7 b 3.8.
Но возникла одна проблема. При конвертации форум выдает ошибку:
Что имена некоторых пользователей конфликтуют, удалите конфликтные имена, так чтобы каждому ID соответсвовало 1 имя пользователя.
И тут я сломался. Я бился часов 7 над этим.
нашел вот это:
http://www.phpbb.com/community/viewtopi ... 35&start=0
даже нашел сообщения, где кто-то кому-то дает совет, что надо удалить кофликтные имена. Но я не могу понять какие имена могут конфликтовать. Ибо у меня в Вобле каждому ID соответсвует только один ник. И я стал методом тыка определять какие имена ему не нравятся. Приходилось каждый раз удалять все, переустанавливать и запускать конвертор и в базе пользователей Воблы оставлять только пару тройку юзеров, с разными типами ников. Но это не помогало в 90% он выдавал одну и туже ошибку. Не выдает он ее только, когда я оставляю только два первых в списке ника в вобле, а остальные удаляю. И тогда конвертация идет, но форум не запускается, так как как я понимаю, он не видит создателей тем и сообщений ибо они не сконвертированы.
пробовал убирать пробел у ников с пробелом
пробовал убирать всякие @, $ и % из ников
пробовал убирать .: - = из ников
пробовал удалять все изначально зарегиных пользователе (ботов, админа и анонима) из базы phpbb3
результат 0
Помогите пожалуйста, ибо задавать вопрос на англоязычном форуме у меня нет способности, я не так хорошо владею английским, чтобы сформулировать свою мысль правильно и доступно.
Не спешите отправлять меня в определенный темы и посик. Все, что есть на вашем форуме я уже нашел, но это не помогло!
В этой теме рассказывается как конвертнуть Воблу сначала в phpbb2, а потом в phpbb3:
http://www.phpbbguru.net/community/topic14590-15.html
Но для форума 3.7 этот конвертор не подошел, он написал кучу ошибок и искалечил базу.
Мне пришлось обратится к форуму phpbb.com и вот что я там отрыл:
http://www.phpbb.com/community/viewtopi ... 5&t=557811
Этот конвертор конвертит сразу в phpbb3, но для форума 3.7 он тоже не подошел, так как в этом форуме разработчики переименовали таблицу юзеров и наделали много другого. и я в этом же топике нарыл более свежий конвертор:
http://www.phpbb.com/community/viewtopi ... 0#p5862045
он подходит для форумов и 3.7 b 3.8.
Но возникла одна проблема. При конвертации форум выдает ошибку:
Что имена некоторых пользователей конфликтуют, удалите конфликтные имена, так чтобы каждому ID соответсвовало 1 имя пользователя.
И тут я сломался. Я бился часов 7 над этим.
нашел вот это:
http://www.phpbb.com/community/viewtopi ... 35&start=0
даже нашел сообщения, где кто-то кому-то дает совет, что надо удалить кофликтные имена. Но я не могу понять какие имена могут конфликтовать. Ибо у меня в Вобле каждому ID соответсвует только один ник. И я стал методом тыка определять какие имена ему не нравятся. Приходилось каждый раз удалять все, переустанавливать и запускать конвертор и в базе пользователей Воблы оставлять только пару тройку юзеров, с разными типами ников. Но это не помогало в 90% он выдавал одну и туже ошибку. Не выдает он ее только, когда я оставляю только два первых в списке ника в вобле, а остальные удаляю. И тогда конвертация идет, но форум не запускается, так как как я понимаю, он не видит создателей тем и сообщений ибо они не сконвертированы.
пробовал убирать пробел у ников с пробелом
пробовал убирать всякие @, $ и % из ников
пробовал убирать .: - = из ников
пробовал удалять все изначально зарегиных пользователе (ботов, админа и анонима) из базы phpbb3
результат 0
Помогите пожалуйста, ибо задавать вопрос на англоязычном форуме у меня нет способности, я не так хорошо владею английским, чтобы сформулировать свою мысль правильно и доступно.
-
crash
- Former team member
- Сообщения: 6517
- Стаж: 22 года 2 месяца
- Откуда: Бердск
- Поблагодарили: 15 раз
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
а вам разве не пишет какие имена конфликтую или их id?
Добавлено спустя 1 минуту 34 секунды:
перед конвертированием измените имя конфликтующих пользователей, просто запомните их, чтобы после конвертирования вернуть все назад
Добавлено спустя 1 минуту 34 секунды:
перед конвертированием измените имя конфликтующих пользователей, просто запомните их, чтобы после конвертирования вернуть все назад
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
-
MyMan
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 17 лет 3 месяца
- Поблагодарили: 2 раза
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
Нет ничего не пишет, выдает только ошибку. Я сейчас не поленюсь, сделаю все ещё раз, чтобы написать здесь дословный текст который он выдает.
Добавлено спустя 3 минуты 58 секунд:
Я даже оставлял например только первые 5 ID в базе воблы, остальные удалял. И там первые 5 ID нормальные ники, т.е. в одно слово и без всяких символов. Но ему опять не нравилось. Потом я оставил только первых 2 ID и он заработал.
Добавлено спустя 3 минуты 58 секунд:
Дело в том, что я не могу понять какие именно имена ему не нравятся. Дело в том, что я пытался определить с какими именами он не хочет дружить и перед конфертацией в базе воблы оставлял разные типы имен например такой: p0nk@. И пробовал конвертировать. Ему не нравилось. Потом я переделывал p0nk@ на понка, но ему опять не нравилось.crash писал(а):перед конвертированием измените имя конфликтующих пользователей, просто запомните их, чтобы после конвертирования вернуть все назад
Я даже оставлял например только первые 5 ID в базе воблы, остальные удалял. И там первые 5 ID нормальные ники, т.е. в одно слово и без всяких символов. Но ему опять не нравилось. Потом я оставил только первых 2 ID и он заработал.
-
crash
- Former team member
- Сообщения: 6517
- Стаж: 22 года 2 месяца
- Откуда: Бердск
- Поблагодарили: 15 раз
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
при конвертировании с 2 на 3, конвертер ругался на имена, которые начинались на И, пришлось эти имена переименовывать на время конвертации
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
-
MyMan
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 17 лет 3 месяца
- Поблагодарили: 2 раза
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
Даже так?:) Ух ты. Чего не ждал, того не ждал. Но мне сложнее. Ибо если бы он писал, что именно ему не нравится. А то он не пишет даже.crash писал(а):при конвертировании с 2 на 3, конвертер ругался на имена, которые начинались на И, пришлось эти имена переименовывать на время конвертации
Это текст ошибки, на тот случай, может я вообще не там роюсь.Критическая ошибка при конвертировании
Критическая ошибка при конвертировании
functions_vb30.php [ 1540 ]
На вашей старой конференции найдены конфликтующие имена пользователей. Для завершения конвертирования, удалите или переименуйте этих пользователей, так чтобы каждому очищенному имени соответствовал только один пользователь старой конференции.
Мне ещё везет, у меня не так много пользователей (500 с копейками), я просто подумал и решил, периименовать их всех в цифры, а потом в ручную вернуть им имена. Ибо выхода видимо нет. Но если будут более дельные предложения напишите пожалуйста:) Ибо не очень тянет провести пару часов в переименовках.
Добавлено спустя 3 минуты 55 секунд:
Да и ещё один вопрос, почему ошибки выдаются в кривой кодировке?
Я вроде перевел базу воблы в UTF8 (поменял в ней все CHARSET и пересохранил файл SQL в UTF8) перед заливкой на локальный сервер и выставил Сопоставление соединения с MySQL: utf8_general_ci или это корявость денвера?
-
crash
- Former team member
- Сообщения: 6517
- Стаж: 22 года 2 месяца
- Откуда: Бердск
- Поблагодарили: 15 раз
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
наверное сервер отдает в windows кодировке, можно попробовать в .htaccess жестко кодировку utf-8.
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
-
Izya
- Former team member
- Сообщения: 408
- Стаж: 18 лет
- Откуда: Абакан, Сибирь
- Благодарил (а): 1 раз
- Поблагодарили: 28 раз
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
MyMan, дело не в том, что конвертеру не нравятся какие-то символы. Судя по ошибке, у Вас на форуме есть похожие имена пользователей, которые после обработки специальной функцией "очистки" имён становятся одинаковыми. Вы говорите, ошибка возникает даже при оставлении всего 5 первых пользователей? Покажите список их имён.MyMan писал(а):конфликтующие имена пользователей
-
MyMan
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 17 лет 3 месяца
- Поблагодарили: 2 раза
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
Izya,
Я уже перевел все ники в аля 001, 002, 003 и т.д. И сконвертировал все. Пользователи там были:
Админ
Марина
BartSimpson
вера
5го хоть убей не помню, честно, просто у меня база воблы уже с 001, 002 и т.д. А перезаливать чтобы сейчас исправлять ники в обратную сторону (чтобы видеть какому номеру какой ник) я пока не стал, потому что появилась проблема с кодировкой. Форум сконвертировался. Все отлично. Разделы номр, топики норм. А сообщения в топика каракули. Что может быть не так?
У меня Вобла была в cp1251, я слил ее БД через DUMPER в SQL файл без сжатия.
В фале поменял все cp1251 на UTF8. Пересохранил SQL и сохранил его в кодировке UTF8. Сопоставление соединения с MySQL: utf8_general_ci. Но теперь такой странный трабл.
Сохранял файл в редакторе EditPlus, там при сохранении выбрал UTF8, он сохранился в неопознаный файл и я ему присвоил разрешение .sql руками. Может как-то по другому надо было сохранить? Просто названия тем и топиков НОРМ, а сообщения иероглифы.
Добавлено спустя 2 минуты 5 секунд:
у меня есть ещё редактор PSPad editor, может в нем пересохранить, но я там не знаю где выбрать кодировку на файл.
Я уже перевел все ники в аля 001, 002, 003 и т.д. И сконвертировал все. Пользователи там были:
Админ
Марина
BartSimpson
вера
5го хоть убей не помню, честно, просто у меня база воблы уже с 001, 002 и т.д. А перезаливать чтобы сейчас исправлять ники в обратную сторону (чтобы видеть какому номеру какой ник) я пока не стал, потому что появилась проблема с кодировкой. Форум сконвертировался. Все отлично. Разделы номр, топики норм. А сообщения в топика каракули. Что может быть не так?
У меня Вобла была в cp1251, я слил ее БД через DUMPER в SQL файл без сжатия.
В фале поменял все cp1251 на UTF8. Пересохранил SQL и сохранил его в кодировке UTF8. Сопоставление соединения с MySQL: utf8_general_ci. Но теперь такой странный трабл.
Сохранял файл в редакторе EditPlus, там при сохранении выбрал UTF8, он сохранился в неопознаный файл и я ему присвоил разрешение .sql руками. Может как-то по другому надо было сохранить? Просто названия тем и топиков НОРМ, а сообщения иероглифы.
Добавлено спустя 2 минуты 5 секунд:
у меня есть ещё редактор PSPad editor, может в нем пересохранить, но я там не знаю где выбрать кодировку на файл.
-
MyMan
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 17 лет 3 месяца
- Поблагодарили: 2 раза
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
Вчера пытался исправить проблемы с кодировкой сообщений, что делал:
в sql файле базы старого форума менял все cp1251 на UTF8
сохранял sql в UTF8 в 3 разных редакторах: EditPlus, PSPad editor и UltraEdit
перегонял базу в UTF8 с помощью dumper (SypexDumperLite_108) менял там:
Сопоставление соединения с MySQL: utf8_general_ci
Ничего не помогает. Самое главное что вобла даже после перегона в UTF8 видит все нормально, а phpbb 3.0.5 после конвертации базы, все заголовки и названия вдит нормально, а сами сообщения в топиках иероглифы. Поискал на форуме, не нашел похожего. Что может быть не так? Помогите уже 3 сутки мучаюсь с перегоном базы.
в sql файле базы старого форума менял все cp1251 на UTF8
сохранял sql в UTF8 в 3 разных редакторах: EditPlus, PSPad editor и UltraEdit
перегонял базу в UTF8 с помощью dumper (SypexDumperLite_108) менял там:
Код: Выделить всё
define('CHARSET', 'utf8');
define('RESTORE_CHARSET', 'forced->utf8'); и define('RESTORE_CHARSET', 'forced->utf8_bin');
Ничего не помогает. Самое главное что вобла даже после перегона в UTF8 видит все нормально, а phpbb 3.0.5 после конвертации базы, все заголовки и названия вдит нормально, а сами сообщения в топиках иероглифы. Поискал на форуме, не нашел похожего. Что может быть не так? Помогите уже 3 сутки мучаюсь с перегоном базы.
-
rxu
- phpBB Guru

- Сообщения: 17272
- Стаж: 20 лет 4 месяца
- Откуда: Красноярск
- Благодарил (а): 632 раза
- Поблагодарили: 2412 раз
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
MyMan
Трудно сказать зачем, но в конверторе в install/convertors/functions_vb30.php дважды объявлена функция
Причем первая возвращает текст без изменений (не перекодирует).
Во второй "жестко" забита кодировка
Я бы посоветовал первое объявление вообще удалить или закомментировать, в оставшемся задать нужную вам кодировку в соответствии с исходной кодировкой БД (очевидно, 'windows-1251' или 'cp1251' - надо проверять).
Трудно сказать зачем, но в конверторе в install/convertors/functions_vb30.php дважды объявлена функция
Код: Выделить всё
function phpbb_set_encoding($text, $grab_user_lang = true)Во второй "жестко" забита кодировка
Код: Выделить всё
$db_character_set = 'iso-8859-1';-
MyMan
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 17 лет 3 месяца
- Поблагодарили: 2 раза
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
rxu
первая у меня была изначально удалена. А во второй ставил и windows-1251 и cp1251 безуспешные иероглифы и опять только в сообщениях. Но есть прогресс, теперь колличество иероглифов больше напоминают исходные сообщения:) Раньше даже самые большие сообщения отображались ввиде нескольких символов, а теперь иероглифов стало больше:)
Добавлено спустя 19 минут 27 секунд:
rxu
УРАААА!!!!! Спасибо вам огромное, что натолкнули в нужное место. У меня же БД была в UTF8 сконвертирована. Там надо было не cp1251, а UTF-8 поставить (ибо исходик то уже в новой кодировке был). И все стало ОК. База встала. Все отлично. Все работает.
Всем огромное спасибо. Рад, что ушел с Воблы ибо поддерживать лицензию, за форум, в котором половина (если не больше) функционала толком простаивает смысла нет, как и покупать пожизненную, и вернулся на phpbb 4 года спустя. Все равно 90% форума, это общение в топиках. А в плане безопасности: когда надо ломают все, здесь не перестрахуешся. Есть хороший коньяк, а есть дорогой коньяк. Но это мое ИМХО:)
первая у меня была изначально удалена. А во второй ставил и windows-1251 и cp1251 безуспешные иероглифы и опять только в сообщениях. Но есть прогресс, теперь колличество иероглифов больше напоминают исходные сообщения:) Раньше даже самые большие сообщения отображались ввиде нескольких символов, а теперь иероглифов стало больше:)
Добавлено спустя 19 минут 27 секунд:
rxu
УРАААА!!!!! Спасибо вам огромное, что натолкнули в нужное место. У меня же БД была в UTF8 сконвертирована. Там надо было не cp1251, а UTF-8 поставить (ибо исходик то уже в новой кодировке был). И все стало ОК. База встала. Все отлично. Все работает.
Всем огромное спасибо. Рад, что ушел с Воблы ибо поддерживать лицензию, за форум, в котором половина (если не больше) функционала толком простаивает смысла нет, как и покупать пожизненную, и вернулся на phpbb 4 года спустя. Все равно 90% форума, это общение в топиках. А в плане безопасности: когда надо ломают все, здесь не перестрахуешся. Есть хороший коньяк, а есть дорогой коньяк. Но это мое ИМХО:)
-
MyMan
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 17 лет 3 месяца
- Поблагодарили: 2 раза
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
Здравствуйте!
После конвертирования с форума Vbulletin 3.7.1 в phpbb3.0.5 появилась проблема. Пользователь регистрируется, но войти после регистрации на форум не может. Пробовал менять пароль через админпанель и опять входить под новым паролем, пишет что пароль неверный. В настройках регистрации все верно. Активация отключена. Что может быть не так???
После конвертирования с форума Vbulletin 3.7.1 в phpbb3.0.5 появилась проблема. Пользователь регистрируется, но войти после регистрации на форум не может. Пробовал менять пароль через админпанель и опять входить под новым паролем, пишет что пароль неверный. В настройках регистрации все верно. Активация отключена. Что может быть не так???
-
MyMan
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 17 лет 3 месяца
- Поблагодарили: 2 раза
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
Проблема в Auth_db как я понимаю, у конвертора и форума они разные:
Auth_db (исходника форума):
Auth_db (конвертора)
Дело в том, что когда стоит одна, то вновьзарегистрировавшиеся пользователи успешно заходят на форум. Но не могут зайти те, кто был зарегистрирован в Вобле. И наоборот когда стоит другая, могут зайти те кто был в Вобле зарегин и не могут те кто регистрировался уже на phpbb. Помогите разобраться.
Auth_db (исходника форума):
Код: Выделить всё
<?php
/**
* Database auth plug-in for phpBB3
*
* Authentication plug-ins is largely down to Sergey Kanareykin, our thanks to him.
*
* This is for authentication via the integrated user table
*
* @package login
* @version $Id: auth_db.php 9312 2009-02-06 14:51:26Z Kellanved $
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}
/**
* Login function
*/
function login_db(&$username, &$password)
{
global $db, $config;
// do not allow empty password
if (!$password)
{
return array(
'status' => LOGIN_ERROR_PASSWORD,
'error_msg' => 'NO_PASSWORD_SUPPLIED',
'user_row' => array('user_id' => ANONYMOUS),
);
}
if (!$username)
{
return array(
'status' => LOGIN_ERROR_USERNAME,
'error_msg' => 'LOGIN_ERROR_USERNAME',
'user_row' => array('user_id' => ANONYMOUS),
);
}
$sql = 'SELECT user_id, username, user_password, user_passchg, user_pass_convert, user_email, user_type, user_login_attempts
FROM ' . USERS_TABLE . "
WHERE username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if (!$row)
{
return array(
'status' => LOGIN_ERROR_USERNAME,
'error_msg' => 'LOGIN_ERROR_USERNAME',
'user_row' => array('user_id' => ANONYMOUS),
);
}
// If there are too much login attempts, we need to check for an confirm image
// Every auth module is able to define what to do by itself...
if ($config['max_login_attempts'] && $row['user_login_attempts'] >= $config['max_login_attempts'])
{
$confirm_id = request_var('confirm_id', '');
$confirm_code = request_var('confirm_code', '');
// Visual Confirmation handling
if (!$confirm_id)
{
return array(
'status' => LOGIN_ERROR_ATTEMPTS,
'error_msg' => 'LOGIN_ERROR_ATTEMPTS',
'user_row' => $row,
);
}
else
{
global $user;
$sql = 'SELECT code
FROM ' . CONFIRM_TABLE . "
WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
AND session_id = '" . $db->sql_escape($user->session_id) . "'
AND confirm_type = " . CONFIRM_LOGIN;
$result = $db->sql_query($sql);
$confirm_row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if ($confirm_row)
{
if (strcasecmp($confirm_row['code'], $confirm_code) === 0)
{
$sql = 'DELETE FROM ' . CONFIRM_TABLE . "
WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
AND session_id = '" . $db->sql_escape($user->session_id) . "'
AND confirm_type = " . CONFIRM_LOGIN;
$db->sql_query($sql);
}
else
{
return array(
'status' => LOGIN_ERROR_ATTEMPTS,
'error_msg' => 'CONFIRM_CODE_WRONG',
'user_row' => $row,
);
}
}
else
{
return array(
'status' => LOGIN_ERROR_ATTEMPTS,
'error_msg' => 'CONFIRM_CODE_WRONG',
'user_row' => $row,
);
}
}
}
// If the password convert flag is set we need to convert it
if ($row['user_pass_convert'])
{
// in phpBB2 passwords were used exactly as they were sent, with addslashes applied
$password_old_format = isset($_REQUEST['password']) ? (string) $_REQUEST['password'] : '';
$password_old_format = (!STRIP) ? addslashes($password_old_format) : $password_old_format;
$password_new_format = '';
set_var($password_new_format, stripslashes($password_old_format), 'string');
if ($password == $password_new_format)
{
if (!function_exists('utf8_to_cp1252'))
{
global $phpbb_root_path, $phpEx;
include($phpbb_root_path . 'includes/utf/data/recode_basic.' . $phpEx);
}
// cp1252 is phpBB2's default encoding, characters outside ASCII range might work when converted into that encoding
// plain md5 support left in for conversions from other systems.
if ((strlen($row['user_password']) == 34 && (phpbb_check_hash(md5($password_old_format), $row['user_password']) || phpbb_check_hash(md5(utf8_to_cp1252($password_old_format)), $row['user_password'])))
|| (strlen($row['user_password']) == 32 && (md5($password_old_format) == $row['user_password'] || md5(utf8_to_cp1252($password_old_format)) == $row['user_password'])))
{
$hash = phpbb_hash($password_new_format);
// Update the password in the users table to the new format and remove user_pass_convert flag
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_password = \'' . $db->sql_escape($hash) . '\',
user_pass_convert = 0
WHERE user_id = ' . $row['user_id'];
$db->sql_query($sql);
$row['user_pass_convert'] = 0;
$row['user_password'] = $hash;
}
else
{
// Although we weren't able to convert this password we have to
// increase login attempt count to make sure this cannot be exploited
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_login_attempts = user_login_attempts + 1
WHERE user_id = ' . $row['user_id'];
$db->sql_query($sql);
return array(
'status' => LOGIN_ERROR_PASSWORD_CONVERT,
'error_msg' => 'LOGIN_ERROR_PASSWORD_CONVERT',
'user_row' => $row,
);
}
}
}
// Check password ...
if (!$row['user_pass_convert'] && phpbb_check_hash($password, $row['user_password']))
{
// Check for old password hash...
if (strlen($row['user_password']) == 32)
{
$hash = phpbb_hash($password);
// Update the password in the users table to the new format
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_password = '" . $db->sql_escape($hash) . "',
user_pass_convert = 0
WHERE user_id = {$row['user_id']}";
$db->sql_query($sql);
$row['user_password'] = $hash;
}
if ($row['user_login_attempts'] != 0)
{
// Successful, reset login attempts (the user passed all stages)
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_login_attempts = 0
WHERE user_id = ' . $row['user_id'];
$db->sql_query($sql);
}
// User inactive...
if ($row['user_type'] == USER_INACTIVE || $row['user_type'] == USER_IGNORE)
{
return array(
'status' => LOGIN_ERROR_ACTIVE,
'error_msg' => 'ACTIVE_ERROR',
'user_row' => $row,
);
}
// Successful login... set user_login_attempts to zero...
return array(
'status' => LOGIN_SUCCESS,
'error_msg' => false,
'user_row' => $row,
);
}
// Password incorrect - increase login attempts
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_login_attempts = user_login_attempts + 1
WHERE user_id = ' . $row['user_id'];
$db->sql_query($sql);
// Give status about wrong password...
return array(
'status' => LOGIN_ERROR_PASSWORD,
'error_msg' => 'LOGIN_ERROR_PASSWORD',
'user_row' => $row,
);
}
?>Auth_db (конвертора)
Код: Выделить всё
<?php
/**
* Database auth plug-in for phpBB3
*
* Authentication plug-ins is largely down to Sergey Kanareykin, our thanks to him.
*
* This is for authentication via the integrated user table
*
* @package login
* @version $Id: auth_db.php,v 1.21 2007/05/14 20:08:11 naderman Exp $
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* Login function
*/
function login_db(&$username, &$password)
{
global $db, $config;
$sql = 'SELECT user_id, username, user_password, user_passchg, user_pass_convert, user_email, user_type, user_login_attempts,salt
FROM ' . USERS_TABLE . "
WHERE username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if (!$row)
{
return array(
'status' => LOGIN_ERROR_USERNAME,
'error_msg' => 'LOGIN_ERROR_USERNAME',
'user_row' => array('user_id' => ANONYMOUS),
);
}
// If there are too much login attempts, we need to check for an confirm image
// Every auth module is able to define what to do by itself...
if ($config['max_login_attempts'] && $row['user_login_attempts'] >= $config['max_login_attempts'])
{
$confirm_id = request_var('confirm_id', '');
$confirm_code = request_var('confirm_code', '');
// Visual Confirmation handling
if (!$confirm_id)
{
return array(
'status' => LOGIN_ERROR_ATTEMPTS,
'error_msg' => 'LOGIN_ERROR_ATTEMPTS',
'user_row' => $row,
);
}
else
{
global $user;
$sql = 'SELECT code
FROM ' . CONFIRM_TABLE . "
WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
AND session_id = '" . $db->sql_escape($user->session_id) . "'
AND confirm_type = " . CONFIRM_LOGIN;
$result = $db->sql_query($sql);
$confirm_row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if ($confirm_row)
{
if (strcasecmp($confirm_row['code'], $confirm_code) === 0)
{
$sql = 'DELETE FROM ' . CONFIRM_TABLE . "
WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
AND session_id = '" . $db->sql_escape($user->session_id) . "'
AND confirm_type = " . CONFIRM_LOGIN;
$db->sql_query($sql);
}
else
{
return array(
'status' => LOGIN_ERROR_ATTEMPTS,
'error_msg' => 'CONFIRM_CODE_WRONG',
'user_row' => $row,
);
}
}
else
{
return array(
'status' => LOGIN_ERROR_ATTEMPTS,
'error_msg' => 'CONFIRM_CODE_WRONG',
'user_row' => $row,
);
}
}
}
// If the password convert flag is set we need to convert it
if ($row['user_pass_convert'])
{
// in phpBB2 passwords were used exactly as they were sent, with addslashes applied
$password_old_format = isset($_REQUEST['password']) ? (string) $_REQUEST['password'] : '';
$password_old_format = (!STRIP) ? addslashes($password_old_format) : $password_old_format;
$password_new_format = '';
set_var($password_new_format, stripslashes($password_old_format), 'string');
if ($password == $password_new_format)
{
if (!function_exists('utf8_to_cp1252'))
{
global $phpbb_root_path, $phpEx;
include($phpbb_root_path . 'includes/utf/data/recode_basic.' . $phpEx);
}
// cp1252 is phpBB2's default encoding, characters outside ASCII range might work when converted into that encoding
if (md5($password_old_format) == $row['user_password'] || md5(utf8_to_cp1252($password_old_format)) == $row['user_password'])
{
// Update the password in the users table to the new format and remove user_pass_convert flag
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_password = \'' . $db->sql_escape(md5($password_new_format)) . '\',
user_pass_convert = 0
WHERE user_id = ' . $row['user_id'];
$db->sql_query($sql);
$row['user_pass_convert'] = 0;
$row['user_password'] = md5($password_new_format);
}
else
{
// Although we weren't able to convert this password we have to
// increase login attempt count to make sure this cannot be exploited
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_login_attempts = user_login_attempts + 1
WHERE user_id = ' . $row['user_id'];
$db->sql_query($sql);
return array(
'status' => LOGIN_ERROR_PASSWORD_CONVERT,
'error_msg' => 'LOGIN_ERROR_PASSWORD_CONVERT',
'user_row' => $row,
);
}
}
}
// Check password ...
// added for vb3 conversion
if (!$row['user_pass_convert'] && (md5($password) == $row['user_password']
or md5(md5($password).$row['salt'])==$row['user_password']))
{
if (md5($password)!=$row['user_password'])
{
// Unconverted password
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_password = "'.md5($password).'"
WHERE user_id = ' . $row['user_id'];
$db->sql_query($sql);
}
if ($row['user_login_attempts'] != 0)
{
// Successful, reset login attempts (the user passed all stages)
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_login_attempts = 0
WHERE user_id = ' . $row['user_id'];
$db->sql_query($sql);
}
// User inactive...
if ($row['user_type'] == USER_INACTIVE || $row['user_type'] == USER_IGNORE)
{
return array(
'status' => LOGIN_ERROR_ACTIVE,
'error_msg' => 'ACTIVE_ERROR',
'user_row' => $row,
);
}
// Successful login... set user_login_attempts to zero...
return array(
'status' => LOGIN_SUCCESS,
'error_msg' => false,
'user_row' => $row,
);
}
// Password incorrect - increase login attempts
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_login_attempts = user_login_attempts + 1
WHERE user_id = ' . $row['user_id'];
$db->sql_query($sql);
// Give status about wrong password...
return array(
'status' => LOGIN_ERROR_PASSWORD,
'error_msg' => 'LOGIN_ERROR_PASSWORD',
'user_row' => $row,
);
}
?>
-
MyMan
- phpBB 1.2.0
- Сообщения: 14
- Стаж: 17 лет 3 месяца
- Поблагодарили: 2 раза
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
ИНСТРУКЦИЯ ПО КОНВЕРТИРОВАНИЮ VBULLETIN 3.7 И ВЫШЕ В PHPBB 3.0.X
давно хотел ее написать, может кому пригодится и поможет, не придется как мне искать ответы долго.
процесс конвертирования необходимо производить только на локальной машине, не в коем случае не делайте это на живом сайте.
1) перевод кодировки вашей базы в UTF-8 (на случай если ваша база в другой кодировке):
СКАЧАТЬ НАИБОЛЕЕ СВЕЖИЙ НА СЕГОДНЯ КОНВЕРТОР МОЖНО: ТУТ
давно хотел ее написать, может кому пригодится и поможет, не придется как мне искать ответы долго.
процесс конвертирования необходимо производить только на локальной машине, не в коем случае не делайте это на живом сайте.
1) перевод кодировки вашей базы в UTF-8 (на случай если ваша база в другой кодировке):
- Если база вашего VBULLETIN была в кодировке cp1251 или какой-либо другой, то вам необходимо сначала изменить кодировку вашей базы на UTF-8, для этого сделайте бекап базы в файл sql (для этого лучше всего воспользоваться скриптом dumper.php Sypex Dumper Lite, инструкция по установке внутри).
- После того как вы получили sql файл базы вашего форума, воспользуйтесь редактором Edit Plus 2 (он самый быстрый в работе с большими файлами, на тот случай если у вас большая база). В нем, в разделе поиск -> заменить установите найти: cp1251 (или кодировку вашей базы) и заменить на: utf8. И запустите поиск и замену. После того как он заменит все значения выберите файл -> сохранить как в названии измените название на нужное в конце допишите .sql в кодировке выбирите UTF-8. Сохраните. Все ваша база готова.
- в файле конвертора functions_vb30.php
НАЙТИ:ЗАМЕНИТЬ НА:Код: Выделить всё
$encoding = 'ISO-8859-1';Код: Выделить всё
$encoding = 'utf-8'; - создайте в корне вашего локального сервера 2 папки: forum и forums. В папку forum поместите исходник phpbb3.0.x (с вложенными для конвертирования файлами - конвертором - где скачать см. внизу сообщения), в папку forums скопируйте файлы вашего форума (vbulletin).
- залейте sql файл базы вашего vbulletina в базу вашей локальной машины с помощью dumper.php (помните установку phpbb 3.0.x необходимо будет производить в эту же базу) в коде которого:
НАЙТИ:ЗАМЕНИТЬ НА:Код: Выделить всё
// Можно также указывать сравнение нужное к примеру 'cp1251_ukrainian_ci' или 'forced->cp1251_ukrainian_ci' define('RESTORE_CHARSET', 'cp1251');Код: Выделить всё
// Можно также указывать сравнение нужное к примеру 'cp1251_ukrainian_ci' или 'forced->cp1251_ukrainian_ci' define('RESTORE_CHARSET', 'forced->utf8'); - запустите установку phpbb 3.0.x и установите его в ту же базу в которую вы ставили базу воблы из пункта выше. не спешите заканчивать установку! когда увидите конечную страницу установки нажмите там конвертирование и выбирите второй конвертор (который конвертирует vBulletin в phpbb) и запустите его. Если все нормально, то конвертирование пройдет удачно и форум сконвертируется.
- если вы увидели ошибку с примерным текстом:
то в файле convert_vb30.php конвертора найдите строки:
Код: Выделить всё
SQL ERROR [ mysql4 ] Unknown column 'userfield.field2' in 'field list' [1054] SQL SELECT user.userid, user.userid AS poster_id, user.usergroupid, user.ipaddress, user.salt, user.joindate, user.username, user.password, user.posts, user.email, user.birthday, user.lastvisit, user.lastactivity, user.timezoneoffset, userfield.field2, userfield.field3, userfield.field4, user.homepage, user.msn, user.yahoo, user.aim, user.icq, user.customtitle, avatar.avatarpath, user.pmunread, user.emailstamp, user.autosubscribe, usertextfield.signature, user.joindate AS post_time FROM ((forumuser user LEFT JOIN forumuserfield AS userfield ON user.userid = userfield.userid) LEFT JOIN forumusertextfield AS usertextfield on user.userid=usertextfield.userid) LEFT JOIN forumavatar AS avatar on user.avatarid=avatar.avatarid WHERE (user.userid <> -1) ORDER BY user.userid LIMIT 2000 BACKTRACE FILE: includes/db/mysql.php LINE: 174 CALL: dbal->sql_error() FILE: includes/db/mysql.php LINE: 221 CALL: dbal_mysql->sql_query() FILE: includes/db/dbal.php LINE: 170 CALL: dbal_mysql->_sql_query_limit() FILE: install/install_convert.php LINE: 1233 CALL: dbal->sql_query_limit() FILE: install/install_convert.php LINE: 203 CALL: install_convert->convert_data() FILE: install/index.php LINE: 405 CALL: install_convert->main() FILE: install/index.php LINE: 282 CALL: module->load()
НАЙДИТЕ И УДАЛИТЕ:Код: Выделить всё
array('user_from', 'userfield.field2', array('function1' => 'phpbb_set_encoding')),Код: Выделить всё
array('user_interests', 'userfield.field3', array('function1' => 'phpbb_set_encoding')),Код: Выделить всё
array('user_occ', 'userfield.field4', array('function1' => 'phpbb_set_encoding')), - так же может быть ошибка где форум вам скажет, что при конвертировании обнаружены конфликтыне имена пользователей, их имена надо будет поменять, а после конвертирования вернуть на прежние.
СКАЧАТЬ НАИБОЛЕЕ СВЕЖИЙ НА СЕГОДНЯ КОНВЕРТОР МОЖНО: ТУТ
-
andreyjkee
- phpBB 1.0.0
- Сообщения: 9
- Стаж: 16 лет 8 месяцев
- Откуда: Воронеж
- Благодарил (а): 1 раз
Re: Ковертор БД Vbulletin 3.7.1 -> phpbb3
Кто нибудь может объяснить, вложения булки после конвертации чтоли остаются в папке булки customattachments? (У меня вложения хранились не в бд, а в файловой системе)
И еще после конвертирования пропали аватары
(тоже хранятся в файловой системе)
В личном разделе аватары отображаются, в сообщениях нет...
Добавлено спустя 7 минут 52 секунды:
С аватарами разобрался. Оказывается они в phpbb по умолчанию отключены были ))
И еще после конвертирования пропали аватары
В личном разделе аватары отображаются, в сообщениях нет...
Добавлено спустя 7 минут 52 секунды:
С аватарами разобрался. Оказывается они в phpbb по умолчанию отключены были ))

