28.12.2010, 19:15
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:
Pomimo tego nie mozna sie zalogowac na forum. Co robie zle? Bardzo prosze o pomoc.
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:
Kod PHP:
// 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.