在vBulletin 4.2中,session
表具有一列loggedin
。由于VB似乎没有官方的数据库文档,所以我想知道它的确切含义,因为该列是SMALLINT
而不是简单的布尔值。
我以前的反向工程: 0 表示未登录。 1 和 2 用于登录的用户,但我不能看看有什么区别。我同时有loggedin=2
的常规用户会话和管理面板会话。
试图通过在vBulletins php文件上运行grep
来获取更多信息,没有运气。
答案 0 :(得分:0)
我了解到我对*.php
个文件的过滤器破坏了greps
递归扫描方法。扫描所有个php文件中的'loggedin'
的正确命令(用引号引起来,因为vB在$vbulletin->session
对象上以这种方式使用它们)是
grep -rn --include \*.php "'loggedin'" .
这给出了一些结果。最有趣的:
./includes/functions.php:7558: $vbulletin->session->set('loggedin', 2);
打开functions.php
可以看到呼叫,并且我们感到幸运的是,至少在vB开发人员的代码中,决定注释将是有用的:
if ($vbulletin->session->vars['loggedin'] == 1 AND !$vbulletin->session->created)
{
# If loggedin = 1, this is out first page view after a login so change value to 2 to signify we are past the first page view
# We do a DST update check if loggedin = 1
$vbulletin->session->set('loggedin', 2);
// ...
}
所以我们可以说1/2并没有提供有关会话类型的信息。它可以是普通用户,也可以是管理员会话。 loggedin
表示用户是否已经查看过其他页面,但是vB开发人员需要为此进行设计。