Frage

Ich bin derzeit ein phpBB2 Forum für einen Abschnitt einer meiner Seiten verwenden, und ich möchte an dieser Stelle erweitern (neue Seiten hinzufügen, Skripte, etc.). Ich möchte den Zugriff auf diese Seiten für die Benutzer bereits im phpBB2 Forum angemeldet beschränken.

In der Tat, wenn nur Mitglieder einer bestimmten MemberGroup diese Seiten zugreifen können, das wäre toll.

Gibt es eine Möglichkeit die gleichen Anmeldeinformationen auf dem Rest meiner Website zu nutzen, und von welchen Gruppen der Mitglieder zu überprüfen sind?

Danke

(übrigens, diese Seiten sind in PHP)

War es hilfreich?

Lösung

Wenn ein Benutzer in PHPBB angemeldet ist, gibt es eine gute Chance, wenn auch nicht immer wahrscheinlich, dass sie dann einen Cookie, das Sie mit der Überprüfung, die das für die Datenbank ist lesen und helfen können.

In diesem Fall möchten Sie die Krümel des Cookies brechen unter:

$_COOKIE["phpbb2mysql_data"]

Nehmen wir ein Beispiel verwenden und ausblasen die Daten, die wir gegen die Datenbank abzufragen benötigen. Unten ist der Brocken in dem obigen Cookie gefunden:

a:2:{s:11:"autologinid";s:0:"";s:6:"userid";s:1:"3";}

Dazu sollten Sie in gehen und extrahieren, dass „3“, die in PHPBB für den angemeldeten Benutzer entsprechen passiert.

unserialize dieser Daten heftig zu ziehen, dass User_id aus:

 $goo = unserialize($_COOKIE["phpbb2mysql_data"]);
 $extracted_id = $goo["userid"];

(Danke an epochwolf auf den Hinweis auf die oben serialisierten Form dieses Cookie)

Diese Zahl wird gut gegen die Datenbank ausgeführt werden, welche Gruppe zu prüfen, das Mitglied angehört. Und Sie würden die Prüfung gegen die phpbb_user_group Tabelle laufen (wenn Sie als Präfix Ihres Forums Tabellen phpbb_ hatte.)

Wenn Sie nicht den Überblick über die Gruppen-IDs aus der Datenbank halten wollten, dann müssen Sie eine Art verbinden und Test gegen den Namen zu tun. Vielleicht so etwas wie folgt aus:

SELECT pug.user_id FROM phpbb_user_group pug 
 LEFT JOIN phpbb_groups g 
 ON pug.group_id=g.group_id
 WHERE pug.user_id='$extracted_id'
 AND g.group_name='Foo';

Wenn Sie eine Zeile aus, dass ziehen können, dann haben Sie sich ein angemeldeten Benutzer gefunden, die diese Foo-Gruppe gehört.

Andere Tipps

Verwenden phpbb2 Benutzertabelle und es ist Login und Berechtigungen Code in den anderen Seiten. Es ist schmutzig, aber es funktioniert.

Mit dem phpbb2 des Code, ich meine:

Dig in phpbb2 Code, herauszufinden, wie phpbb2 Benutzer authentifiziert, und kopieren Sie die relevanten Teile des Codes. Wenn phpbb2 anständig strukturiert ist, können Sie in der Lage sein, umfassen nur ein paar Dateien aus phpbb2 und nutzen sie ohne großen Hack Job. Wenn es nicht gut strukturiert ist, geht es schmutzig und hässlich sein.

Sie nicht vergessen haben, Ihre neue gesicherten Ergänzungen zu Ihrer Website zu testen! Stellen Sie sicher, dass Sie die Hacks richtig machen.

Sie können phpBB 2 Tische Benutzer- und Gruppen direkt verwenden. Soweit ich mich erinnere, ist das Passwort Spalte nur ein md5 () des aktuellen Passwort.

Dieser Trick funktioniert nicht mehr in phpBB3, da das Passwort (endlich) ist gesalzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top