vBulletins会话表的登录列是什么意思?

时间:2018-12-07 21:17:51

标签: session vbulletin

在vBulletin 4.2中,session表具有一列loggedin。由于VB似乎没有官方的数据库文档,所以我想知道它的确切含义,因为该列是SMALLINT而不是简单的布尔值。

我以前的反向工程: 0 表示未登录。 1 2 用于登录的用户,但我不能看看有什么区别。我同时有loggedin=2的常规用户会话和管理面板会话。

试图通过在vBulletins php文件上运行grep来获取更多信息,没有运气

所以我的具体问题是:

  • 1和2会话之间有什么区别?
  • 是否存在比0、1和2还要多的状态?
  • 当vBulletin的代码似乎不使用它们时,它们甚至有关系吗?

1 个答案:

答案 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开发人员需要为此进行设计。