1. Важное и срочное обновление IPB 3.4.5 - https://nulled.cc/threads/243375/

[Помощь] Неопределяет в статистике статус зашедшего на форум

Тема в разделе "IPB", создана пользователем a_smith, 27 мар 2009.

Статус темы:
Закрыта.
Модераторы: Maybe
  1. a_smith

    a_smith

    Регистр.:
    4 дек 2008
    Сообщения:
    261
    Симпатии:
    54
    Неопределяет в статистике статус зашедшего на форум, некоторые люди (большинство) не определяются на форуме: ни как гость, ни как юзер форума - просто выкидывается IP? Кто они? И как их избежать? Если "левые" то почему Гость неприсваеивается? Если кто сталкивался - растолкуйте.

    scr01.JPG
     
  2. Виллен

    Виллен

    Регистр.:
    12 мар 2009
    Сообщения:
    235
    Симпатии:
    60
    а под обычным пользователем/гостем что видно вместо ip?
    что лежит в сессиях в базе? (запусти запрос (префикс таблицы может быть другой))
    Код:
    SELECT * FROM forum_sessions ORDER BY running_time desc LIMIT 0, 25
    
    убедись что у вышеуказанных юзеров member_group = id гостя , обычно 2
    Если там все ровно будем искать дальше, уже в php
     
    a_smith нравится это.
  3. a_smith

    a_smith

    Регистр.:
    4 дек 2008
    Сообщения:
    261
    Симпатии:
    54
    Очень странная картина, id_пользователя есть, но группа почему то не Выводится ни ник...


    scr02.GIF
     
  4. Виллен

    Виллен

    Регистр.:
    12 мар 2009
    Сообщения:
    235
    Симпатии:
    60
    это стольок народу постоянно на форуме? 8 страниц?
    сдается мне что большая часть строк - устаревшие, просто они не удалились
    попробуй обнулить эту таблицу
     
  5. a_smith

    a_smith

    Регистр.:
    4 дек 2008
    Сообщения:
    261
    Симпатии:
    54
    Ну вот удалил, через 15 минут та же картина...
    идентификаторы стоят у всех , а вот member_name в меньшей половины
    Вот интерессно Sql-запрос посмотреть который выбирает на статистику. Не в курсе где найти?
     
  6. Виллен

    Виллен

    Регистр.:
    12 мар 2009
    Сообщения:
    235
    Симпатии:
    60
    включи отладку (в 2 местах: в global.conf sql_debug = 1 и в админке в общих настроках уровень отладки = 3)
    это выведет список всех запросов на странице, правда только твоих запросов
    но можно потыкаться под гостем, поробовать залогиниться с верным/неверным паролем, при этом анализиуруя запросы
    неверный логин должен выглядить так
    Код:
    SHUTDOWN: UPDATE forum_sessions SET member_name='',member_id=0,member_group=2,login_type=0,running_time=1238189566,location='Login,0,01',in_error=0,location_1_type='',location_1_id=0,location_2_type='',location_2_id=0,location_3_type='',location_3_id=0 WHERE id='874dc3c1cd4918a5d1a2b7a7ce55fe8a'
    
    если member_group не присвоен и member_id не 0, то это будет странно, копай код этой страницы, возможно там ошибка в запросе
     
    a_smith нравится это.
  7. a_smith

    a_smith

    Регистр.:
    4 дек 2008
    Сообщения:
    261
    Симпатии:
    54
    Результаты отладки:

    scr03.JPG
     
  8. a_smith

    a_smith

    Регистр.:
    4 дек 2008
    Сообщения:
    261
    Симпатии:
    54
    Вообщем непонятно почему, но в таблицу _session неймЫ непопадают
    В файле /sources/lib/func_boardstats.php (который отвечает за логику вывода данных в список юзеров на главной) есть запрос

    т.е. обычный SQL это
    его наверное надо переделать на :
    Но не знаю как это сделать внутри IPB, т.е. объединять два запроса, ошибка синтаксиса как некрутил....
    Может кто поможет...
     
  9. Виллен

    Виллен

    Регистр.:
    12 мар 2009
    Сообщения:
    235
    Симпатии:
    60
    Помоему ты ну туда полез.
    Это называется боремся не с болезнью, а с симптомами.
    Тебе надо разобраться почему в сесиию имена не попадают, а должны
    в class_session.php есть
    PHP:
                $this->ipsclass->DB->do_shutdown_insert'sessions',
                                                         array(
                                                                
    'id'                 => $this->session_id,
                                                                
    'member_name'        => $this->member['members_display_name'],
                                                                
    'member_id'          => intval($this->member['id']),
                                                                
    'member_group'       => $this->member['mgroup'],
                                                                
    'login_type'         => intval(substr($this->member['login_anonymous'],01)),
                                                                
    'running_time'       => $this->time_now,
                                                                
    'ip_address'         => $this->ipsclass->ip_address,
                                                                
    'browser'            => substr$this->ipsclass->user_agent0200 ),
                                                                
    'location'           => $vars['location'],
                                                                
    'in_error'           => 0,
                                                                
    'location_1_type'    => isset($vars['1_type']) ? $vars['1_type'] : '',
                                                                
    'location_1_id'      => isset($vars['1_id']) ? intval($vars['1_id']) : 0,
                                                                
    'location_2_type'    => isset($vars['2_type']) ? $vars['2_type'] : '',
                                                                
    'location_2_id'      => isset($vars['2_id']) ? intval($vars['2_id']) : 0,
                                                                
    'location_3_type'    => isset($vars['3_type']) ? $vars['3_type'] : '',
                                                                
    'location_3_id'      => isset($vars['3_id']) ? intval($vars['3_id']) : 0,
    вот его дамп в отладке (таблицу сессий надо предварительно очистить)
    Код:
    SHUTDOWN: INSERT INTO forum_sessions (id,member_name,member_id,member_group,login_type,running_time,ip_address,browser,location,in_error,location_1_type,location_1_id,location_2_type,location_2_id,location_3_type,location_3_id) VALUES('a97f3178fecf7a19038570b60585bd7a','',0,2,0,1238230913,'127.0.0.1','Opera/9.63 (Windows NT 6.1; U; ru) Presto/2.1.1','idx,0,',0,'',0,'',0,'',0)
    
    или после логина
    Код:
    SHUTDOWN: INSERT INTO forum_sessions (id,member_name,member_id,member_group,login_type,running_time,ip_address,browser,location,in_error,location_1_type,location_1_id,location_2_type,location_2_id,location_3_type,location_3_id) VALUES('2af78ae772e6580fce04dda64ecbc309','Виллен',1048,4,0,1238231172,'127.0.0.1','Opera/9.63 (Windows NT 6.1; U; ru) Presto/2.1.1','idx,0,',0,'',0,'',0,'',0)
    
    у тебя все поля заполнены? Если нет, то надо разбираться почему,
    если же заполнены надо сомтреть дальше ,возможно слудущие запросы портят инфу.
     
    a_smith нравится это.
  10. a_smith

    a_smith

    Регистр.:
    4 дек 2008
    Сообщения:
    261
    Симпатии:
    54
    Для отладки добавляю в функциях в которых идет insert в class_session.php:

    это функции
    create_member_session()
    create_guest_session()
    create_bot_session($bot, $name="")
    update_bot_session($bot, $name="")

    scr05.JPG
    Результат неутешительный, такое чувство что сессии открываются где-то до этих ф-ций, хотя в коде ни черта не нашел.
    Не могу понять почему одни попадают, другие нет. Записи в members идентичные...

    2 Виллен - можно аську мне в личку? для консультаций...
     
Статус темы:
Закрыта.