Login mit phpBB-Daten - Problem seit phpBB3

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
CitruX
Mitglied
Beiträge: 8
Registriert: 21.12.2007 11:29

Login mit phpBB-Daten - Problem seit phpBB3

Beitrag von CitruX »

Ich nutze seit langem ein Login-System das auf den phpBB-Daten baut. Somti loggt man sich mit Username und Passwort des Forum ein. Seit phpBB3 gibt es aber Probleme, anscheinend mit dem Passwort. Was ist das Problem? Meine Vermutung ist eine neue PW-Verschlüsselung. Wenn das so ist, wie umgehe ich das dann?
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Ja in der Tat Passwörter werden neu verschlüsselt. Schau dir mal die functions.php an, soweit ich mich entsinne sind gleich die beiden ersten Funktionen dafür zuständig.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
CitruX
Mitglied
Beiträge: 8
Registriert: 21.12.2007 11:29

Beitrag von CitruX »

Gut, nur wie kann ich sowas jetzt umgehen?
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Du könntest deinen einlogg-Vorgang ja mit der Funktion zusammen realisieren.

Umgehen geht "nicht".
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
CitruX
Mitglied
Beiträge: 8
Registriert: 21.12.2007 11:29

Beitrag von CitruX »

Das werde ich dann versuchen. Wie kann man den die Daten des phpBB außerhalb des Forums nutzen? Mein Loginsystem ist so aufgeabut

Code: Alles auswählen

if(isset($_POST['username'], $_POST['password']) AND
			login_right($_POST['username'], $_POST['password'])) {
				$sql = "SELECT username FROM phpbb_users WHERE username = '".$_POST['username']."';";
				$result = mysql_query($sql) OR die(mysql_error());
				$row = mysql_fetch_assoc($result);
				$_SESSION['name'] = $row['username'];
			}

Code: Alles auswählen

function login_right($name, $pass) {
		$sql_user = "SELECT
					COUNT(*) as anzahl
				FROM
					phpbb_users
				WHERE
					username = '".$name."' AND
					user_password = MD5('".$pass."');";
		$result_user = mysql_query($sql_user) OR die(mysql_error());
		$row_user = mysql_fetch_assoc($result_user);
		mysql_free_result($result_user);
		return $row_user['anzahl'];
	}
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

So funktioniert es vermutlich am einfachsten:

Code: Alles auswählen

define('IN_PHPBB', true);
include(bla)
Die Prüffunktion ist eigendlich wie die von dir:
Prüfen tust du mit:

Code: Alles auswählen

phpbb_check_hash($password, $hash)
$password müsste die Eingabe sein
$hask der Wert aus der DB
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Siehe auch hier oder hier.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
CitruX
Mitglied
Beiträge: 8
Registriert: 21.12.2007 11:29

Beitrag von CitruX »

Heißt das ich muss das gesamte System in phpBB einbetten?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Wenn du den Login vollständig nutzen willst ja. Theoretisch kannst du ja von jeder Seite per Link zum Forum wechseln und dann sollte der User auch bei jedem Link eingeloggt sein. Wenn du nur die Daten prüfen willst und der User nicht eingeloggt sein muss, im Forum, dann kannst du natürlich auch lediglich die Loginseite umbauen, prüfen, ob der Login des Users klappt und das dann ansonsten so behandeln wie vorher auch.

Es reicht allerdings wenn du lediglich die Standard-Includes einbaust, bei der Benutzung von Cookies macht das Forum eigentlich den Rest von alleine. Das geht natürlich dann schief wenn dein bisheriger Code inkompatibel ist (z.b. abweichendes Datenbankobjekt mit gleichem Namen oder Verbindung zu einer falschen Datenbank, außerdem könnte bei verschiedenen DBs auch eine gleichzeitige Verwendung von den Core Funktionen ohne Vollständige Parameter evtl. zu Problemen führen). Oder du nimmst die Risiken in Kauf und verfährst gemäß dem Inhalt des ersten von mir verlinkten Themas, so dass du das etwa wie vorher machen kannst.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
CitruX
Mitglied
Beiträge: 8
Registriert: 21.12.2007 11:29

Beitrag von CitruX »

Was muss bei dem Paramteter $hash hin? Da bin ich gerade ziemlich ratlos... Ich weiß irgendwelche Daten aus der DB, aber welche?
Antworten

Zurück zu „Coding & Technik“