Lösenordskonvertering

Här kan du ställa frågor om problem med och drift av phpBB 3 (3.0.0 eller senare). Det är här du bör skapa en tråd om du har ett problem, vill ställa en fråga och vill ha ett svar. Gäller det något annat, var vänlig bläddra nedåt på sidan.

Moderatorer: Supportgrupp, Moderatorgrupp

Kategoriregler
Här kan du ställa frågor om problem med och drift av phpBB 3 (3.0.0 eller senare). Det är här du bör skapa en tråd om du har ett problem, vill ställa en fråga och vill ha ett svar. Gäller det något annat, var vänlig bläddra nedåt på forumindex.

Klicka här för att se våra allmänna forumregler.
Skriv svar
ErikJ
Ny medlem
Ny medlem
Inlägg: 4
Blev medlem: 2007-06-09 14:00
Svar: 0

Lösenordskonvertering

Inlägg av ErikJ »

Jag testade att konvertera mitt forum, men när jag skulle logga in fick jag besked om att konverteringen av mitt lösenord misslyckats och att jag därför skulle skriva in mitt nick och min epostadress för att få ett nytt.

Jag försökte komma på nåt sätt så man skulle slippa det, så jag testade att kopiera över MD5-summorna i phpbb_users från phpBB2-databasen till phpBB3-databasen. För min del gick det fint att logga in efteråt, men moderatorerna på mitt forum kunde det inte. Av någon anledning var user_pass_convert = 0 för mig men 1 för dem. Beror det på att jag är founder, eller att jag är admin?

Att sätta user_pass_convert till 0 för dem verkade lösa problemet. Men så testade jag med ett nick med lösenordet åäö och fick återigen beskedet att konverteringen av mitt lösenord misslyckats och att jag skulle uppge nick och mailadress.

Läste på Area51 om hur man kunde få lösenord med grekiska bokstäver att fungera efter en konvertering:
http://area51.phpbb.com/phpBB/viewtopic.php?f=3&t=28328

Jag antar att man kan göra på samma sätt när det gäller lösenord som innehåller åäö.

Så min fråga är hur jag skall göra transformeringsfunktionen?
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Inlägg av tumba25 »

Att user_pass_convert var 0 för dig beror på att du redan hade satt lösen när du installerade det nya forumet. För alla som flyttas från gamla till nya sätts user_pass_convert = 1.

Sen när dom har loggat in en gång sätts den till 0 för dom med.

Återkommer om din egentliga fråga.

/D
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Inlägg av tumba25 »

Så här skulle jag göra...

Öppna includes/auth/auth_db.php

Leta upp

Kod: Markera allt

if (md5($password_old_format) == $row['user_password'] || md5(utf8_to_cp1252($password_old_format)) == $row['user_password'])
Ersätt med

Kod: Markera allt

if (md5($password_old_format) == $row['user_password'] || md5(utf8_to_swe($password_old_format)) == $row['user_password'] || md5(utf8_to_cp1252($password_old_format)) == $row['user_password'])
Öppna includes/utf/data/recode_basic.php

Leta uppLägg till innan

Kod: Markera allt

function utf8_to_swe($string)
{
	static $transform = array(
		"\xC3\xA5" => "\xE5",
		"\xC3\xA4" => "\xE4",
		"\xC3\xB6" => "\xF6",
		"\xC3\x85" => "\xC5",
		"\xC3\x84" => "\xC4",
		"\xC3\x96" => "\xD6"
	);
	return strtr($string, $transform);
}
Har bara testat lite, verkar funka. Den är för åäöÅÄÖ
Kom ihåg att ta backup på allt möjligt innan.

/D
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Inlägg av Kail »

Gah, otroligt att de inte fixar svenska tecken i användarnamn utan problem. UTF8 borde gälla hela vägen, men ska man supporta MySQL före 4.2.1 får man sådana här problem...
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
ErikJ
Ny medlem
Ny medlem
Inlägg: 4
Blev medlem: 2007-06-09 14:00
Svar: 0

Inlägg av ErikJ »

Tackar. :D
ErikJ
Ny medlem
Ny medlem
Inlägg: 4
Blev medlem: 2007-06-09 14:00
Svar: 0

Inlägg av ErikJ »

Nu har vi bestämt oss för att skjuta upp uppgraderingen till gold release. Men bäst att vara väl förberedd så jag testade tipset nu, och det funkade inte. :(

Vad kan man tänka sig är för fel?
Användarens profilbild
John Hjorth
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 195
Blev medlem: 2006-01-13 03:03
Svar: 0
Kontakt:

Inlägg av John Hjorth »

ErikJ,

I stedet for at fundere over hvor fejlen eventuelt måtte ligge bør du rapportere fejlen i phpBB3.0-bug trackeren på .com, så en developer kan kigge på det.
John Hjorth
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Inlägg av tumba25 »

Att den inte konverterar åäöÅÄÖ korrekt vid uppgradering från phpBB2 -> phpBB3 anses inte vara någon bugg och kommer enligt den som är ledare nu inte att göras något åt.

/J
Användarens profilbild
John Hjorth
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 195
Blev medlem: 2006-01-13 03:03
Svar: 0
Kontakt:

Inlägg av John Hjorth »

tumba,

Link?
John Hjorth
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Re: Lösenordskonvertering

Inlägg av tumba25 »

ErikJ skrev:Läste på Area51 om hur man kunde få lösenord med grekiska bokstäver att fungera efter en konvertering:
http://area51.phpbb.com/phpBB/viewtopic.php?f=3&t=28328
Det var visst inte teamleadern men en ur utvecklingsgruppen var det och han borde veta.

/J
Användarens profilbild
John Hjorth
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 195
Blev medlem: 2006-01-13 03:03
Svar: 0
Kontakt:

Inlägg av John Hjorth »

tumba,

Tak, jeg har været uopmærksom under læsningen af emnet.
John Hjorth
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Inlägg av tumba25 »

John Hjorth: vassego. De gör vi alla mellanåt.

ErikJ: Ska kolla på det under dagen och se var jag slarvade.

/J
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Inlägg av tumba25 »

En annan detalj är att phpBB3 kräver minst 6 tecken i lösenordet. Är du säker på att det inte är det som spökar?

När jag konverterar mellan forumsystem brukar jag strunta i att försöka ta med lösenorden. Istället gör jag ett skript som autogenererar nya lösenord till alla användare. Sen mailas det nya lösenordet till adressen dom har angett när dom reggade och dom uppmanas att logga in och byta lösenord.

/J
ErikJ
Ny medlem
Ny medlem
Inlägg: 4
Blev medlem: 2007-06-09 14:00
Svar: 0

Inlägg av ErikJ »

Testade med 6 bokstäver men det gick inte heller. Nu vet jag dock var felet sitter, jag la in rader här och där i auth_db.php om att maila mig och det visar sig att raden du tipsade om att ändra ligger inuti en IF-sats som blir falsk om lösenordet slutar på åäö.

Kod: Markera allt

// 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)
		{
Med lösenordet åäö blir $password = åäö och $password_new_format=åäö ??????
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Inlägg av tumba25 »

åäö är åäö på UTF8-språk. phpBB3 har Charset UTF8 och din webbläsare konverterar åäö till åäö. phpBB2 har charset iso-8859-1. Charset = teckentabell.

Raden i IF-satsen är på rätt plats tror jag. Jag har iofs inte hunnit titta på den igen än, men jag tror att felet är i själva konverteringen. Ska försöka få tid till det under veckan.

phpBB2 sparade ner lösenordet som den kom från den som reggade in. phpBB3 decodar den från UTF8 innan den sparas eller kollas.

/J
Skriv svar

Vilka är online

Användare som besöker denna kategori: 0 och 0 gäster