Seite 1 von 2

Externe Registrierung, Passwort mit sonderzeichen

Verfasst: 21.06.2012 13:53
von Marcwa19197
Hallo,
Ich habe ein kleines problem mit folgendem Code:

Code: Alles auswählen

$phpbb_password = request_var($row['pass_clean'],'');
        
        /* Daten in array schreiben */
        $user_row = array(
        'username' => $row['name'],
        'user_password' => phpbb_hash($phpbb_password),
        'user_email' => $row['email'],
        'group_id' => '2',
        'user_timezone' => '1.00',
        'user_dst' => '0',
        'user_lang' => 'de',
        'user_type' => '0',
        'user_actkey' => '',
        'user_dateformat' => 'd M Y H:i',
        'user_style' => '1',
        'user_regdate' => time(),
        );

        /* User anlegen */
        if(!$phpbb_user_id = user_add($user_row)){
        $fehler = $lang['board_reg_fail'];
        }
Undzwar habe ich gelesen, das mithilfe dieses Codes eine externe Registrierung des phpbb3 Board möglich sei. Soweit funktioniert auch alles Problemlos.
Wenn aber ein User ein Passwort mit sonderzeichen eingibt, kommt es zu folgendem Problem:
Der User lässt sich zwar ohne Probleme auf meiner Seite einloggen, aber der Login im Forum funktioniert nicht, da das Passwort angeblich falsch sei.
Nach langer Suche kam ich deshalb auf die Zeile: $phpbb_password = request_var($row['pass_clean'],''); was jedoch auchnicht funktioniert.

In der Variable $row['pass_clean'] befindet sich das unverschlüsselte Orginal Passwort des Users..

Ich hoffe mir kann jemand Helfen..

Danke schonmal im vorraus :)

Re: Externe Registrierung, Passwort mit sonderzeichen

Verfasst: 22.06.2012 21:25
von Miriam
Wo kommt denn $row['pass_clean'] her?


Ansonsten: Lies zum Thema Sonderzeichen und request_var() hier.

Re: Externe Registrierung, Passwort mit sonderzeichen

Verfasst: 22.06.2012 21:57
von Marcwa19197
$row['pass_clean'] kommt aus eiern datenbankabfrage, diese gibt das unverschlüsselte original passwort aus.

Du meinst bestimmt "$message = utf8_normalize_nfc(request_var('message', '', true));" oder?

Danke schonmal :)

Re: Externe Registrierung, Passwort mit sonderzeichen

Verfasst: 22.06.2012 22:22
von Miriam
Du hättest mal den ganzen Artikel lesen sollen:
request_var –– Get passed variables from $_GET, $_POST, or $_COOKIE
Die von Dir benutzte Variable wird aber nicht per Post / Get / Cookie übergeben. Also ist request_var() nicht die passende Funktion.

Und Du hast die Passwörter unverschlüsselt in Deiner (zuarbeitenden) DB? Respekt! :o

Re: Externe Registrierung, Passwort mit sonderzeichen

Verfasst: 22.06.2012 22:30
von Marcwa19197
das problem is, das es sich um ein sogenanntes 'confirm' script handelt.. vorher in eiejnr regist.php wird der user auf meiber homepage registreirt, dann werden die daten in eine usercheck tabelle eingespeichert & nach erfolgreicher aktivieren (per link in email) wird der user im forum registriert.. wenn ich es jedoch verschlüsselt speichere gibt es probleme mit der registrierung im forum.. außer es gibt da eine andere möglichkeit.. habe aber seid einiger zeit ne kleine denkblockade.. :D

Re: Externe Registrierung, Passwort mit sonderzeichen

Verfasst: 22.06.2012 22:47
von Miriam
Also $phpbb_password = $row['pass_clean']; sollte passen.
Da das Klartext-Passwort ja schon in Deiner DB ist, sollte die SQL Injection Problematik auch schon erledigt sein. Stimmt's?

Re: Externe Registrierung, Passwort mit sonderzeichen

Verfasst: 22.06.2012 23:02
von Marcwa19197
genau, sql injection ist schon gefixxt :)

Vielen Dank, werde es gleich mal ausprobieren :)

Re: Externe Registrierung, Passwort mit sonderzeichen

Verfasst: 22.06.2012 23:04
von Pyramide
Marcwa19197 hat geschrieben:vorher in eiejnr regist.php wird der user auf meiber homepage registreirt, dann werden die daten in eine usercheck tabelle eingespeichert & nach erfolgreicher aktivieren (per link in email) wird der user im forum registriert..
Warum legst du den Benutzer in phpBB nicht auch schon sofort an und setzt ihn dort ebenfalls in den Status inaktiv?

Und warum pflegst du überhaupt zwei getrennte Benutzerdatenbanken? Siehe Forum-FAQ für die beiden Alternativen, beide Datenbanken zu verbinden.

Re: Externe Registrierung, Passwort mit sonderzeichen

Verfasst: 23.06.2012 16:03
von Marcwa19197
Miriam hat geschrieben:Also $phpbb_password = $row['pass_clean']; sollte passen.
Funktioniert leider auchnicht..

Habe im moment folgendne Code:

Code: Alles auswählen

	    $phpbb_password = $row['pass_clean'];
        
        /* Daten in array schreiben */
        $user_row = array(
        'username' => $row['name'],
        'user_password' => phpbb_hash($phpbb_password),
        'user_email' => $row['email'],
        'group_id' => '2',
        'user_timezone' => '1.00',
        'user_dst' => '0',
        'user_lang' => 'de',
        'user_type' => '0',
        'user_actkey' => '',
        'user_dateformat' => 'd M Y H:i',
        'user_style' => '1',
        'user_regdate' => time(),
        );

		if(phpbb_check_hash($phpbb_password, phpbb_hash($phpbb_password)) == false) {
		
		    echo "Error!";
			break;
		}
		
		
        /* User anlegen */
        if(!$phpbb_user_id = user_add($user_row)){
        $fehler = $lang['board_reg_fail'];
        }
Mit

Code: Alles auswählen

		if(phpbb_check_hash($phpbb_password, phpbb_hash($phpbb_password)) == false) {
		
		    echo "Error!";
			break;
		}
überprüfe ich nochmal ob das eingegebene Passwort erfolgreich gehashed wird, was auch der Fall ist.

Der User kann sich aber immernochnicht einloggen.. Meldung "Du hast ein fehlerhaftes Passwort angegeben. Bitte prüfe dein Passwort und versuche es erneut. Wenn du weiterhin auf Probleme stößt, wende dich bitte an die Board-Administration."

Re: Externe Registrierung, Passwort mit sonderzeichen

Verfasst: 23.06.2012 16:20
von Miriam
Dann mach Dich an die Fehlersuche.
Lass Dir die Daten ausgeben und checke alles durch.