1 (24.01.2006 22:02 отредактировано SDTux)

Тема: Вопрос по плагину статистики

Mod title:  Userstats
Mod version:  1.0.1

В readme есть такая фраза:

As long as your statistics tables in the database are not filled with user entries you will of course receive some errors ;-)

Заметил ее последствие - при логине выдается ошибка:

An error was encountered
Error: Unable to insert into user statistics.

Может ли быть проблема из-за того, что плагин официально не поддерживает punbb 1.2.5?

"Мнение большинства не является критерием истины."

Сайт SDTux

Поделиться

2 (24.01.2006 21:19 отредактировано SDTux)

Re: Вопрос по плагину статистики

Проверил - проявляется это и с новыми пользователями.
Посмотрел - в таблице не заполняется поле  statuser.

Согласно инструкции readme сделал вот так:

#
#---------[ 4. OPEN ]---------------------------------------------------
#
include/functions.php


#
#---------[ 5. FIND (line:76) ]---------------------------------------------------
#
            // Update the online list
            if (!$pun_user['logged'])
                $db->query('INSERT INTO '.$db->prefix.'online (user_id, ident, logged) VALUES('.$pun_user['id'].', \''.$db->escape($pun_user['username']).'\', '.$now.')') or error('Unable to insert into online list', __FILE__, __LINE__, $db->error());
                }

#
#---------[ 6. CHANGE TO ]---------------------------------------------------
#
            // Update the online list
// MOD USERSTATS CHANGE
            if (!$pun_user['logged'])  {
                $db->query('INSERT INTO '.$db->prefix.'online (user_id, ident, logged) VALUES('.$pun_user['id'].', \''.$db->escape($pun_user['username']).'\', '.$now.')') or error('Unable to insert into online list', __FILE__, __LINE__, $db->error());
                $db->query('INSERT INTO'.$db->prefix.'statuser (user_id, user_ip) VALUES('.$pun_user['id'].','.$db->escape(get_remote_address()).')') or error('Unable to insert into user statistics', __FILE__, __LINE__, $db->error());
                }
// END MOD USERSTATS CHANGE

"Мнение большинства не является критерием истины."

Сайт SDTux

Поделиться

3

Re: Вопрос по плагину статистики

Временно убрал кусок отвечающий за отслеживание посетителей:

$db->query('INSERT INTO'.$db->prefix.'statuser (user_id, user_ip) VALUES('.$pun_user['id'].','.$db->escape(get_remote_address()).')') or error('Unable to insert into user statistics', __FILE__, __LINE__, $db->error());
"Мнение большинства не является критерием истины."

Сайт SDTux

Поделиться

4 (27.03.2006 10:49 отредактировано vvik)

Re: Вопрос по плагину статистики

а ты config.php менял? а точнее строку $cookie_name?
у меня такая ошибка была после изменения конфига - старые куки мешали. как только удалил куки (в моем случае я просто удалил только один файл куковский, который остался после моего форума) - все заработало без проблем.
причем ни один плагин или мод тут не причем был.

just imho

Поделиться

5

Re: Вопрос по плагину статистики

а где найти этот мод? и каковы его функции?

Сайт kisin

Поделиться

6

Re: Вопрос по плагину статистики

найти тут punres.org/viewtopic.php?id=522

Раскажите по-подробнее кто пользуется этим модом как поставить на 1.2.11, выдает ту же ошибку при заходе, уже и кусисы удалял, и менял в конфиге, все непомогает, не считает...

Сайт cooler

Поделиться

7 (23.11.2006 08:04 отредактировано Юко)

Re: Вопрос по плагину статистики

Ошибка в SQL запросе к базе.
В общем нужно исправить вот эту строчку

#
#---------[ 6. CHANGE TO ]---------------------------------------------------
#
            // Update the online list
// MOD USERSTATS CHANGE
            if (!$pun_user['logged'])  {
                $db->query('INSERT INTO '.$db->prefix.'online (user_id, ident, logged) VALUES('.$pun_user['id'].', \''.$db->escape($pun_user['username']).'\', '.$now.')') or error('Unable to insert into online list', __FILE__, __LINE__, $db->error());
Вот эту ---->>>    $db->query('INSERT INTO'.$db->prefix.'statuser (user_id, user_ip) VALUES('.$pun_user['id'].','.$db->escape(get_remote_address()).')') or error('Unable to insert into user statistics', __FILE__, __LINE__, $db->error());
                }
// END MOD USERSTATS CHANGE

На эту

$db->query('INSERT INTO '.$db->prefix.'statuser (user_id, user_ip) VALUES('.$pun_user['id'].',\''.$db->escape(get_remote_address()).'\')') or error('Unable to insert into user statistics', __FILE__, __LINE__, $db->error());

(c) Kern Elvish

Сайт Юко

Поделиться

8

Re: Вопрос по плагину статистики

Расскажите подробнее про мод - что он делает-то? А то ставить чтобы только посмотреть что такое - как-то не хочется...

Сайт Bik

Поделиться

9

Re: Вопрос по плагину статистики

Bik

Он собирает статистику по пользователям:
Сколько пользователей заходило.
Какие пользователи заходили
Сколько раз заходил тот или иной пользователь
Что посещал конкретный пользователь.
Какие темы наиболее популярны

И всё это за любой промежуток времени.

Сайт Юко

Поделиться

10

Re: Вопрос по плагину статистики

Юко пишет:

Bik

Он собирает статистику по пользователям:
Сколько пользователей заходило.
Какие пользователи заходили
Сколько раз заходил тот или иной пользователь
Что посещал конкретный пользователь.
Какие темы наиболее популярны

И всё это за любой промежуток времени.

Хм, интересно... Поставил.

Сайт Bik

Поделиться

11

Re: Вопрос по плагину статистики

Юко пишет:

Что посещал конкретный пользователь.

Вот  не знаю... у меня все работает кроме этой фичи...

Поделиться

12

Re: Вопрос по плагину статистики

AdminЧИК

а у меня работает smile

Выбираешь что показывать и за какой период - показываются какие пользователи заходили и сколько раз,
жмёш на пользователя - показывается что посещал этот пользователь.

Сайт Юко

Поделиться

13 (20.12.2006 12:08 отредактировано flashcat)

Re: Вопрос по плагину статистики

Parse error: syntax error, unexpected T_ELSE in /home/.............../include/functions.php on line 106



У меня вот такая ошибка помогите...


            // Update the online list
// MOD USERSTATS CHANGE
            if (!$pun_user['logged'])  {
                $db->query('INSERT INTO '.$db->prefix.'online (user_id, ident, logged) VALUES('.$pun_user['id'].', \''.$db->escape($pun_user['username']).'\', '.$now.')') or error('Unable to insert into online list', __FILE__, __LINE__, $db->error());
                $db->query('INSERT INTO '.$db->prefix.'statuser (user_id, user_ip) VALUES('.$pun_user['id'].',\''.$db->escape(get_remote_address()).'\')') or error('Unable to insert into user statistics', __FILE__, __LINE__, $db->error());
                }
// END MOD USERSTATS CHANGE

                // Special case: We've timed out, but no other user has browsed the forums since we timed out
                if ($pun_user['logged'] < ($now-$pun_config['o_timeout_visit']))
                {
                    $db->query('UPDATE '.$db->prefix.'users SET last_visit='.$pun_user['logged'].' WHERE id='.$pun_user['id']) or error('Unable to update user visit data', __FILE__, __LINE__, $db->error());
                    $pun_user['last_visit'] = $pun_user['logged'];
                }

// MOD USERSTATS CHANGE
            if ($pun_user['idle'] == 1)  {
                $db->query('INSERT INTO '.$db->prefix.'statuser (user_id, user_ip) VALUES('.$pun_user['id'].',"'.$db->escape(get_remote_address()).'")') or error('Could not insert into statistics', __FILE__, __LINE__, $db->error());
                }
// END MOD USERSTATS CHANGE



                $idle_sql = ($pun_user['idle'] == '1') ? ', idle=0' : '';
                $db->query('UPDATE '.$db->prefix.'online SET logged='.$now.$idle_sql.' WHERE user_id='.$pun_user['id']) or error('Unable to update online list', __FILE__, __LINE__, $db->error());
            }
        }

        $pun_user['is_guest'] = false;
    }
    else  <----------------| это 106 строка..
        set_default_user();
}

Вот что там есть ... в чём проблема



Строчку что указана выше в сообщение заменял(((((    Куки тоже удалял.....

Сайт flashcat

Поделиться

14

Re: Вопрос по плагину статистики

Функцию целиком выложи

Сайт hcs

Поделиться

15

Re: Вопрос по плагину статистики

Сколько запросов он делает к бд?

Сайт Slavik

Поделиться

16 (21.12.2006 07:02 отредактировано flashcat)

Re: Вопрос по плагину статистики

Вот мой фил с изменением уже до него все нормально работало  flashcat.ru/arc/functions.php и архив на всякий случай

flashcat.ru/arc/functions.rar

Сайт flashcat

Поделиться

17 (21.12.2006 10:13 отредактировано Юко)

Re: Вопрос по плагину статистики

flashcat

У тебя куда то потерялось одно else и открывающая скобка.
Вообщем вот мой код этой функции:

//
// Cookie stuff!
//
function check_cookie(&$pun_user)
{
    global $db, $pun_config, $cookie_name, $cookie_seed;

    $now = time();
    $expire = $now + 31536000;    // The cookie expires after a year

    // We assume it's a guest
    $cookie = array('user_id' => 1, 'password_hash' => 'Guest');

    // If a cookie is set, we get the user_id and password hash from it
    if (isset($_COOKIE[$cookie_name]))
        list($cookie['user_id'], $cookie['password_hash']) = @unserialize($_COOKIE[$cookie_name]);

    if ($cookie['user_id'] > 1)
    {
        // Check if there's a user with the user ID and password hash from the cookie
        $result = $db->query('SELECT u.*, g.*, o.logged, o.idle FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON u.group_id=g.g_id LEFT JOIN '.$db->prefix.'online AS o ON o.user_id=u.id WHERE u.id='.intval($cookie['user_id'])) or error('Unable to fetch user information', __FILE__, __LINE__, $db->error());
        $pun_user = $db->fetch_assoc($result);

        // If user authorisation failed
        if (!isset($pun_user['id']) || md5($cookie_seed.$pun_user['password']) !== $cookie['password_hash'])
        {
            pun_setcookie(0, random_pass(8), $expire);
            set_default_user();

            return;
        }

        // Set a default language if the user selected language no longer exists
        if (!@file_exists(PUN_ROOT.'lang/'.$pun_user['language']))
            $pun_user['language'] = $pun_config['o_default_lang'];

        // Set a default style if the user selected style no longer exists
        if (!@file_exists(PUN_ROOT.'style/'.$pun_user['style'].'.css'))
            $pun_user['style'] = $pun_config['o_default_style'];

        if (!$pun_user['disp_topics'])
            $pun_user['disp_topics'] = $pun_config['o_disp_topics_default'];
        if (!$pun_user['disp_posts'])
            $pun_user['disp_posts'] = $pun_config['o_disp_posts_default'];

        if ($pun_user['save_pass'] == '0')
            $expire = 0;

        // Define this if you want this visit to affect the online list and the users last visit data
        if (!defined('PUN_QUIET_VISIT'))
        {
            // Update the online list
//            if (!$pun_user['logged'])
//                $db->query('INSERT INTO '.$db->prefix.'online (user_id, ident, logged) VALUES('.$pun_user['id'].', \''.$db->escape($pun_user['username']).'\', '.$now.')') or error('Unable to insert into online list', __FILE__, __LINE__, $db->error());
            // Update the online list
// MOD USERSTATS CHANGE
            if (!$pun_user['logged'])  {
                $db->query('INSERT INTO '.$db->prefix.'online (user_id, ident, logged) VALUES('.$pun_user['id'].', \''.$db->escape($pun_user['username']).'\', '.$now.')') or error('Unable to insert into online list', __FILE__, __LINE__, $db->error());
                $db->query('INSERT INTO '.$db->prefix.'statuser (user_id, user_ip) VALUES('.$pun_user['id'].',\''.$db->escape(get_remote_address()).'\')') or error('Unable to insert into user statistics', __FILE__, __LINE__, $db->error());
                }
// END MOD USERSTATS CHANGE

            else // <------- вот этого у тебя нет
            {     // <------- и этой скобки
                // Special case: We've timed out, but no other user has browsed the forums since we timed out
                if ($pun_user['logged'] < ($now-$pun_config['o_timeout_visit']))
                {
                    $db->query('UPDATE '.$db->prefix.'users SET last_visit='.$pun_user['logged'].' WHERE id='.$pun_user['id']) or error('Unable to update user visit data', __FILE__, __LINE__, $db->error());
                    $pun_user['last_visit'] = $pun_user['logged'];
                }
// MOD USERSTATS CHANGE
            if ($pun_user['idle'] == 1)  {
                $db->query('INSERT INTO '.$db->prefix.'statuser (user_id, user_ip) VALUES('.$pun_user['id'].',"'.$db->escape(get_remote_address()).'")') or error('Could not insert into statistics', __FILE__, __LINE__, $db->error());
                }
// END MOD USERSTATS CHANGE
                $idle_sql = ($pun_user['idle'] == '1') ? ', idle=0' : '';
                $db->query('UPDATE '.$db->prefix.'online SET logged='.$now.$idle_sql.' WHERE user_id='.$pun_user['id']) or error('Unable to update online list', __FILE__, __LINE__, $db->error());
            }
        }

        $pun_user['is_guest'] = false;
    }
    else
        set_default_user();
}

Сайт Юко

Поделиться

18

Re: Вопрос по плагину статистики

Спасибо вроде работает щас переведу потестирую

Сайт flashcat

Поделиться

19

Re: Вопрос по плагину статистики

Кто длительное время использует этот мод, насколько сильно разрастается у вас база от него и какова общая нагрузка на ваш форум.
Этот вопрос затрагивается в аннотации к моду, вот и интересует.

P.S. Без изменения строки запроса, указанной выше, действительно не работает.

Поделиться

20 (22.02.2007 09:17 отредактировано Юко)

Re: Вопрос по плагину статистики

Мне бы очень пригодилось знать о гостях, откуда они (ip адрес) и какие страницы посещают.
Может кто то сделает такое на основе этого мода?

Сайт Юко

Поделиться

21

Re: Вопрос по плагину статистики

pun_online, хорошая штука, может есть пример на punres'е, но если что как он работает можно увидеть у меня. Добавляет 1 запрос к бд, при определенной сноровке можно его объединить с дефолтным запросом в online (в скором времени хочу этим заняться)

Сайт Slavik

Поделиться

22

Re: Вопрос по плагину статистики

Slavik
время вдохновений, видимо. проявлю интерес к твоему обновлению!!! улучшение мода - это очень хорошо big_smile

just imho

Поделиться

23

Re: Вопрос по плагину статистики

vvik
Не отвлекай человека, он над сабфорумами думает smile

Поделиться

24

Re: Вопрос по плагину статистики

Slavik

но если что как он работает можно увидеть у меня

классно работает.
А можно файлик online.php? и что там еще нужно smile

Сайт Юко

Поделиться

25

Re: Вопрос по плагину статистики

vvik пишет:

улучшение мода - это очень хорошо

Да ну какое тут улучшение, просто есть дефолтный запрос к таблице online, и еще один добавляет punonline, их вместе объединить и все

Юко пишет:

А можно файлик online.php? и что там еще нужно

www.punres.org/viewtopic.php?id=318

Сайт Slavik

Поделиться