Seite 1 von 1

Login mit phpBB-Daten - Problem seit phpBB3

Verfasst: 10.01.2008 21:50
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?

Verfasst: 11.01.2008 14:52
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.

Verfasst: 11.01.2008 15:26
von CitruX
Gut, nur wie kann ich sowas jetzt umgehen?

Verfasst: 11.01.2008 16:50
von Boecki91
Du könntest deinen einlogg-Vorgang ja mit der Funktion zusammen realisieren.

Umgehen geht "nicht".

Verfasst: 11.01.2008 16:54
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'];
	}

Verfasst: 11.01.2008 17:16
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

Verfasst: 11.01.2008 20:18
von gn#36
Siehe auch hier oder hier.

Verfasst: 11.01.2008 20:27
von CitruX
Heißt das ich muss das gesamte System in phpBB einbetten?

Verfasst: 11.01.2008 20:45
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.

Verfasst: 11.01.2008 20:49
von CitruX
Was muss bei dem Paramteter $hash hin? Da bin ich gerade ziemlich ratlos... Ich weiß irgendwelche Daten aus der DB, aber welche?