Si un utilisateur est connecté à PHPBB, il y a de bonnes chances, mais pas toujours probable, qu'il dispose alors d'un cookie que vous pouvez lire et aider à vérifier qui est qui dans la base de données.
Dans ce cas, vous aurez envie de briser les miettes du biscuit ci-dessous:
$_COOKIE["phpbb2mysql_data"]
Prenons un exemple et souffler pour trouver les données dont nous avons besoin pour interroger la base de données contre. Ci-dessous le morceau trouvé dans le cookie ci-dessus:
a:2:{s:11:"autologinid";s:0:"";s:6:"userid";s:1:"3";}
Pour cela, vous aurez envie d'aller et extraire que « 3 », qui arrive à correspondre à l'utilisateur connecté PHPBB.
Unserialize that data Yank que user_id sur:
$goo = unserialize($_COOKIE["phpbb2mysql_data"]);
$extracted_id = $goo["userid"];
(Merci à epochwolf en pointant vers le formulaire sérialisé ci-dessus ce cookie)
Ce numéro sera bon pour exécuter contre la base de données pour vérifier le groupe auquel le membre appartient. Et vous exécuteriez la vérification sur la table phpbb_user_group
(si vous aviez phpbb_ comme préfixe de vos tables de forum.)
Si vous ne souhaitiez pas conserver les ID de groupe dans la base de données, vous devrez faire une sorte de rejoindre et tester contre le nom. Peut-être quelque chose comme ceci:
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';
Si vous pouvez tirer une ligne de cela, alors vous vous avez trouvé un utilisateur connecté qui appartient à ce groupe de Foo.
-1 pour traitement incorrect des données sérialisées. – epochwolf
Si vous ne le saviez pas, ce cookie contient un tableau sérialisé. Vous devriez utiliser la fonction unserialize() de php pour extraire les données. http://www.php.net/unserialize – epochwolf
Merci pour le pointeur sur les données sérialisées, réponse éditée pour vous rendre la vie plus facile. – random