Externe Registrierung, Passwort mit sonderzeichen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Marcwa19197
Mitglied
Beiträge: 15
Registriert: 10.01.2012 21:54

Externe Registrierung, Passwort mit sonderzeichen

Beitrag 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 :)
Verschoben von phpBB 3.0: Mod Suche/Anfragen nach phpBB 3.0: Mod-Bastelstube am 21.06.2012 14:15 durch Metzle

Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Externe Registrierung, Passwort mit sonderzeichen

Beitrag von Miriam »

Wo kommt denn $row['pass_clean'] her?


Ansonsten: Lies zum Thema Sonderzeichen und request_var() hier.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Marcwa19197
Mitglied
Beiträge: 15
Registriert: 10.01.2012 21:54

Re: Externe Registrierung, Passwort mit sonderzeichen

Beitrag 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 :)
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Externe Registrierung, Passwort mit sonderzeichen

Beitrag 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
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Marcwa19197
Mitglied
Beiträge: 15
Registriert: 10.01.2012 21:54

Re: Externe Registrierung, Passwort mit sonderzeichen

Beitrag 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
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Externe Registrierung, Passwort mit sonderzeichen

Beitrag 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?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Marcwa19197
Mitglied
Beiträge: 15
Registriert: 10.01.2012 21:54

Re: Externe Registrierung, Passwort mit sonderzeichen

Beitrag von Marcwa19197 »

genau, sql injection ist schon gefixxt :)

Vielen Dank, werde es gleich mal ausprobieren :)
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Externe Registrierung, Passwort mit sonderzeichen

Beitrag 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.
KB:knigge
Marcwa19197
Mitglied
Beiträge: 15
Registriert: 10.01.2012 21:54

Re: Externe Registrierung, Passwort mit sonderzeichen

Beitrag 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."
Zuletzt geändert von Marcwa19197 am 23.06.2012 16:21, insgesamt 1-mal geändert.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Externe Registrierung, Passwort mit sonderzeichen

Beitrag von Miriam »

Dann mach Dich an die Fehlersuche.
Lass Dir die Daten ausgeben und checke alles durch.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“