Wenn ein Benutzer in PHPBB angemeldet ist, besteht eine gute Chance, obwohl nicht immer wahrscheinlich, dass er dann einen Cookie hat, den Sie lesen können, und helfen bei der Überprüfung des wer ist wer gegen die Datenbank.
In diesem Fall werden Sie die Krümel des Cookies unten brechen wollen:
$_COOKIE["phpbb2mysql_data"]
Nehmen wir ein Beispiel verwenden und es wehen die Daten, die wir gegen die Datenbank abfragen müssen, um herauszufinden. Unten ist der Brocken in dem obigen Cookie gefunden:
a:2:{s:11:"autologinid";s:0:"";s:6:"userid";s:1:"3";}
Dazu werden Sie in gehen wollen und extrahieren, dass „3“, die in PHPBB für den angemeldeten Benutzer entsprechen passiert.
Unserialize that data an, dass User_id ausreißen:
$goo = unserialize($_COOKIE["phpbb2mysql_data"]);
$extracted_id = $goo["userid"];
(Dank epochwolf auf zeigt die obige serialisierten Form dieses Cookie out)
Diese Zahl wird sich gut gegen die Datenbank ausgeführt werden, um zu überprüfen Zu welcher Gruppe gehört das Mitglied? Und Sie würden die Prüfung gegen die phpbb_user_group
Tabelle laufen (wenn Sie phpbb_ als Präfix des Forums Tabellen hatte.)
Wenn Sie nicht aus der Datenbank Spur der Gruppen-IDs halten wollte, dann müssen Sie Machen Sie eine Art von Join und testen Sie den Namen. 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 kann, dann finden Sie haben sich ein angemeldeter Benutzer, die dieser Foo-Gruppe gehört.
-1 für unsachgemäße Behandlung von serialisierten Daten. – epochwolf
Falls Sie nicht wussten, dass das Cookie ein serialisiertes Array enthält. Sie sollten die Funktion unserialize() von php verwenden, um die Daten zu extrahieren. http://www.php.net/unserialize – epochwolf
Danke für den Zeiger auf die serialisierten Daten, bearbeitete Antwort, um das Leben einfacher zu machen. – random