Nest

[S] PHP-Fusion -> SMF -> MyBB

Założony przez lucani.

nazwa i wersja skryptu, z którego migrowano: PHP-Fusion 6
wersja skryptu MyBB: 1.6.1
adres forum: -
opis problemu:

Witam!

Właśnie zakończyłem migrację z forum PHP-Fusion 6 do SMF i następnie z SMF do MyBB. Pierwsza migracja zakończyła się pełnym sukcesem, przy drugiej nie skopiowały się ani avatary, ani załączniki, jednak największym problemem jest tabela użytkowników. PHP-Fusion trzyma hasła w bazie w postaci md5(hasło), SMF robi to identycznie, dlatego po pierwszej konwersji hashe w tabeli uzytkownikow SMF byly identyczne jak w PHP-Fusionie i mozna bylo sie zalogowac. Po konwersji na MyBB hashe pojawily sie w kolumnie passwordconvert, a typ jest ustawiony na smf11. Plugin konwertowania jest wlaczony, ale najwyrazniej nie dziala poprawnie. Kazda proba logowania (niezaleznie czy dobra czy zla) konczy sie dodaniem losowych wartosci do kolumn password, salt, loginkey. Kiedy dodalem triggery do kodu zauwazylem, ze funkcja SMF11 przekazuje haslo do SMF, a ta zwraca true dla poprawnego hasla w pogrubionej linijce:

// Authentication for SMF
function authenticate_smf($password)
{
if(crypt($password, substr($password, 0, 2)) == $this->user['passwordconvert'])
{
return true;
}
else if(my_strlen($this->user['passwordconvert']) == 32 && $this->md5_hmac(preg_replace("#\_smf1\.1\_import(\d+)$#i", '', $this->user['username']), $password) == $this->user['passwordconvert'])
{
return true;
}
[b] else if(my_strlen($this->user['passwordconvert']) == 32 && md5($password) == $this->user['passwordconvert'])
{
return true;
}[/b]
return false;
}

Pomimo tego nie mozna sie zalogowac na forum. Co robie zle? Bardzo prosze o pomoc.
Dlatego nie lubię konwersji... ^^
@Topic: Tutaj jest chyba podobny problem. Rozwiązanie:
W funkcji loginconvert_validate_password_from_uid zmienić:
Kod:
if(isset($user['passwordconvert']) && trim($user['passwordconvert']) != '' && trim($user['passwordconverttype']) != '' && trim($user['password']) == '')
na
Kod:
if(isset($user['passwordconvert']) && trim($user['passwordconvert']) != '' && trim($user['passwordconverttype']) != '')
Spróbuj, na razie tylko tak mogę pomóc.
Praktycznie nic to nie zmieniło, na konto testowe moge sie zalogowac, ale uzytkownicy dalej nie moga o0
Hm, hm. A możesz wyczyścić cache i usunąć te "złe klucze" z bazy?
Podziękowali: lucani
Ciarki mi ida po plecach... przegladalem kody zrodlowe, ale jest tak, jak napisalem: php-fusion trzyma hasla zakodowane md5. Z niewiadomych powodow, jezeli wygeneruje hashe jakis hasel przez jeden z generatorow dostepnych w internecie, to czesc z nich zgadza sie z tymi w bazie, a czesc nie. Pomimo tych roznic PHP-fusion poprawnie loguje tych uzytkownikow. Moze jest jakas przeladowana md5(); ? Jest to w ogole mozliwe?

SPRAWA SIE WYJASNILA:
Hasla niektorych uzytkownikow byly podwojnie hashowane podczas upgradu z poprzednich wersji (~5 lat temu o0 )

Pomogl dla Schocker :)

Podobne wątki

Merge System Jak dokonać zmiany silnika z SMF na MyBB ?

06.03.2015, 19:11
Ostatni post: Matslom

[Migracja][SMF 2.0.9][Problem] Brak wyświetlania liczby wątków, postów...

06.03.2015, 19:03
Ostatni post: Rafcio1983

MyBB Migrator Jak zintegrować php-fusion v7.02.07

17.03.2014, 13:30
Ostatni post: gloverek

MyBB Migrator Czy merge wspiera smf 2.0.7?

10.03.2014, 23:49
Ostatni post: Cybul

Jak przeniesc baze sql z php by przemo na MyBB ?

20.07.2013, 07:57
Ostatni post: Cabura

Skocz do:

Użytkownicy przeglądający ten wątek:

1 gości