Что означает столбец входа в систему в сеансовой таблице vBulletins? - PullRequest
0 голосов
/ 08 декабря 2018

В vBulletin 4.2 таблица session имеет столбец loggedin.Поскольку у VB, похоже, нет официальной документации по базе данных, я хочу знать, что именно это означает, потому что столбец - это SMALLINT вместо простого логического значения.

Мой предыдущий реверс-инжиниринг: 0 означает, что не вошел в систему. 1 и 2 используется для зарегистрированных пользователей, но я не могупосмотри какая разницаУ меня есть как обычные сеансы пользователей, так и сеансы панели администратора с loggedin=2.

Пытался получить больше информации, запустив grep для файлов php vBulletins, без везения .

Итак, мои конкретные вопросы:

  • В чем разница между сеансами с 1 и 2?
  • Существует ли больше состояний, чем 0, 1 и 2?
  • Имеют ли они значение, когда код vBulletin, кажется, не использует их?

1 Ответ

0 голосов
/ 08 декабря 2018

Я узнал, что мой фильтр для *.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 необходимо разделить это.

...