如果用户登录 PHPBB,他们很有可能(尽管并不总是可能)拥有一个 cookie,您可以读取该 cookie,并帮助根据数据库检查谁是谁。
在这种情况下,您需要打碎下面的饼干碎屑:
$_COOKIE["phpbb2mysql_data"]
让我们用一个例子来分析一下,找到我们需要查询数据库的数据。下面是在上面的 cookie 中找到的块:
a:2:{s:11:"autologinid";s:0:"";s:6:"userid";s:1:"3";}
为此,您需要进入并提取恰好对应于登录的 PHPBB 用户的“3”。
反序列化该数据 http://au.php.net/unserialize将该 user_id 拉出:
$goo = unserialize($_COOKIE["phpbb2mysql_data"]);
$extracted_id = $goo["userid"];
(谢谢纪元狼 https://stackoverflow.com/users/16204/epochwolf指出该 cookie 的上述序列化形式)
该数字可以很好地针对数据库运行,以检查该成员属于哪个组。你会针对phpbb_user_group
表(如果您将 phpbb_ 作为论坛表的前缀。)
如果您不想跟踪数据库中的组 ID,则需要对名称进行某种连接和测试。也许是这样的:
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';
如果您可以从中提取一行,那么您就发现自己是属于该 Foo 组的登录用户。