To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

1.12.7 i starsze - Online Bots Manager (mod. do phpbb by Przemo)

Galii - 09-04-2008, 18:58

Mam ten sam problem proszę o starszą wersje
meschiash - 20-04-2008, 11:25

Jest błąd w instrukcji instalacja.txt a dokładnie w opisie admin/index.php
Kod:
----- [ FIND ] -----
    //
    // Guest users
    //
    if( count($onlinerow_guest) )
    {
        $guest_users = 0;

----- [ AFTER ADD ] -----
       
        /*
            Online Bots Manager 1.2
            http://m1chu.eu
            mail: m1chu@m1chu.eu
        */
        $botslist = array();
        $botips = array();
        $is_bot = '';
       
        $sql = 'select bots_name, bots_ip
                from ' . BOTS_TABLE . '
                    order by bots_id ASC';
        if ( !$result = $db->sql_query($sql) )
        {
            message_die(GENERAL_ERROR, 'Could not query bots infos', '', __LINE__, __FILE__, $sql);
        }       
        $rows = 0;
        while ( $row = $db->sql_fetchrow($result) )
        {
            $botslist[$rows][0] = $row['bots_ip'];
            $botslist[$rows][1] = $row['bots_name'];
            $botips[$rows] = explode(';', $botslist[$rows][0]);
            $rows++;
        }

Następna instrukcja każe modyfikować dopiero co wstawiony kod tak jakby była to aktualizacja z wersji 1.1 do 1.2 :?:
Kod:
----- [ FIND ] -----
        /*
            Online Bots Manager 1.1
            http://m1chu.eu
            mail: m1chu@m1chu.eu
        */
        $botslist = array();
        $botips = array();
        $is_bot = '';
       
        $sql = 'select bots_name, bots_ip
       
----- [ REPLACE WITH ] -----
        /*
            Online Bots Manager 1.2
            http://m1chu.eu
            mail: m1chu@m1chu.eu
        */
        $botslist = array();
        $botips = array();
        $is_bot = '';
       
        $sql = 'select bots_name, bots_ip, bots_ua

Następnie szukamy bez dalszej akcji czegoś co nie istnieje w index.php??
Kod:
----- [ FIND ] -----
            $explodedip = explode(".", $guest_ip);

Potem znów szukamy
Kod:
----- [ FIND ] -----
            $guest_ip = decode_ip($onlinerow_guest[$i]['session_ip']);
                       
            $name_guest = $lang['Guest'];
           
            $time_online = ((CR_TIME - $onlinerow_guest[$i]['session_start']) < 3600) ? round( (CR_TIME - $onlinerow_guest[$i]['session_start']) / 60, 0 ) : round( (CR_TIME - $onlinerow_guest[$i]['session_start']) / 60 / 60, 1 );
            $lang_online = ((CR_TIME - $onlinerow_guest[$i]['session_start']) < 3600) ? $lang['online_minutes'] : $lang['online_hours'];

            $template->assign_block_vars('guest_user_row', array(
                "ROW_COLOR" => "#" . $row_color,
                "ROW_CLASS" => $row_class,
                "USERNAME" => $lang['Guest'],
                "USERNAME" => $name_guest,
                "TIME" => sprintf($lang_online, $time_online),
                "STARTED" => create_date($board_config['default_dateformat'], $onlinerow_guest[$i]['session_start'], $board_config['board_timezone']),
                "LASTUPDATE" => create_date($board_config['default_dateformat'], $onlinerow_guest[$i]['session_time'], $board_config['board_timezone']),
                "FORUM_LOCATION" => $location,
                "IP_ADDRESS" => $guest_ip,
                "HOST" => (isset($HTTP_GET_VARS['hosts']) && $guest_host = @gethostbyaddr($guest_ip)) ? ' (' . $guest_host . ')' : '',

                "U_WHOIS_IP" => $board_config['address_whois'] . $guest_ip,
                "U_FORUM_LOCATION" => append_sid($location_url))
            );

I mamy zastąpić instrukcją, w której jest to czego szukaliśmy powyżej bez żadnej akcji
Kod:

----- [ REPLACE WITH ] -----
            $guest_ip = decode_ip($onlinerow_guest[$i]['session_ip']);
           
            /*
                Online Bots Manager 1.2
                http://m1chu.eu
                mail: m1chu@m1chu.eu
            */           
            $name_guest = $lang['Guest'];

-------------->  $explodedip = explode(".", $guest_ip);
            $botsessionip = strtolower(gethostbyaddr($guest_ip));
            $botsessionua = strtolower($onlinerow_guest[$i]['session_ua']);

            for ( $r = 0; $r < $rows; $r++ )
            {
                if ( !empty($botslist[$r][2]) && strpos($botsessionua, strtolower($botslist[$r][2])) !== false )
                {
                    $name_guest = '<span class="bot_color">' . (( strlen($botslist[$r][1]) > 20 ) ? substr($botslist[$r][1], 0, 19) . '...' : $botslist[$r][1]) . '</span>';
                    break 1;
                }
               
                $countedbotips = count($botips[$r]);
                for ( $k = 0; $k < $countedbotips; ++$k )
                {
                    if ( preg_match("/^([0-9.]+)$/", $botips[$r][$k]) )
                    {
                        $explodedlist = explode(".", $botips[$r][$k]);
                        $countedexplodedlist = count($explodedlist);
                        for ( $j = 0; $j < $countedexplodedlist; ++$j )
                        {
                            if ( $j == 0 )
                            {
                                $is_bot = true;
                            }
                               
                            if ( $explodedip[$j] == $explodedlist[$j] && is_numeric($explodedlist[$j]) && $is_bot == true )
                            {       
                                $is_bot = true;                   
                                if ( $j == count($explodedlist) - 1 && $is_bot == true )
                                {
                                    $name_guest = '<span class="bot_color">' . (( strlen($botslist[$r][1]) > 20 ) ? substr($botslist[$r][1], 0, 19) . '...' : $botslist[$r][1]) . '</span>';
                                    break 3;
                                }
                            }
                            else {
                                $is_bot = false;
                            }
                        }
                    }
                    else {
                        if ( $botsessionip == strtolower($botips[$r][$k]) )
                        {
                            $name_guest = '<span class="bot_color">' . (( strlen($botslist[$r][1]) > 20 ) ? substr($botslist[$r][1], 0, 19) . '...' : $botslist[$r][1]) . '</span>';
                            break 2;
                        }
                    }
                }
            }
           
            $time_online = ((CR_TIME - $onlinerow_guest[$i]['session_start']) < 3600) ? round( (CR_TIME - $onlinerow_guest[$i]['session_start']) / 60, 0 ) : round( (CR_TIME - $onlinerow_guest[$i]['session_start']) / 60 / 60, 1 );
            $lang_online = ((CR_TIME - $onlinerow_guest[$i]['session_start']) < 3600) ? $lang['online_minutes'] : $lang['online_hours'];

            $template->assign_block_vars('guest_user_row', array(
                "ROW_COLOR" => "#" . $row_color,
                "ROW_CLASS" => $row_class,
                "USERNAME" => $lang['Guest'],
                "USERNAME" => $name_guest,
                "TIME" => sprintf($lang_online, $time_online),
                "STARTED" => create_date($board_config['default_dateformat'], $onlinerow_guest[$i]['session_start'], $board_config['board_timezone']),
                "LASTUPDATE" => create_date($board_config['default_dateformat'], $onlinerow_guest[$i]['session_time'], $board_config['board_timezone']),
                "FORUM_LOCATION" => $location,
                "IP_ADDRESS" => $guest_ip,
                "HOST" => (isset($HTTP_GET_VARS['hosts']) && $guest_host = @gethostbyaddr($guest_ip)) ? ' (' . $guest_host . ')' : '',

                "U_WHOIS_IP" => $board_config['address_whois'] . $guest_ip,
                "U_FORUM_LOCATION" => append_sid($location_url))
            );

No i tyle co znalazłem. m1chu jak to poprawić ?

Co do pierwszego błędu to raczej kosmetyka ale do do tego szukania bez dalszej akcji to wygląda na brak w instrukcji lub błąd.

Do tego pytanie. Czy przez powyższe instrukcje jest możliwe aby PA znacznie zwolniło swe wczytywanie ?? Jakie obciążenie generuje Online Bots Manager ??

Jones - 20-04-2008, 12:23

Dokladnie, tak jak meschiash pisze - w instrukcji instalacji moda sa bledy i nie idzie zmusic moda do dzialania.
meschiash - 20-04-2008, 12:35

Cytat:
Dokladnie, tak jak meschiash pisze - w instrukcji instalacji moda sa bledy i nie idzie zmusic moda do dzialania.

u mnie on zadziałał ale nie jestem pewien czy gdzieś się nie pętli lub czy gdzieś nie ma braków w kodzie. Do tego trzeba jednak więcej wiedzy niż posiadam.

Jones - 20-04-2008, 12:47

Co zrobiles, ze Ci zadzialal? Ominales te instrukcje?
meschiash - 20-04-2008, 13:03

W admin/index.php wykonałem instrukcje takie jak w pliku instalacja.txt łącznie z:
Kod:
----[znajdź]----
$sql = 'select bots_name, bots_ip
----[zastąp]----
$sql = 'select bots_name, bots_ip, bots_ua

bez
Kod:
----- [ szukaj] -----
            $explodedip = explode(".", $guest_ip);

Jones - 20-04-2008, 13:20

Dzieki, zaraz to wyprobuje i napisze, czy gra :) .

Hmm i jest problem, bo:

Nie mogę wykonać: INSERT INTO phpbb_bots (bots_name, bots_ip, bots_lastvisit, bots_visits) VALUES ('Googlebot/2.1', '66.249

meschiash - 20-04-2008, 13:32

Jones, jako pierwsze to posprzątaj uprawnienia do katalogów http://www.markolf.pl/forum/check_files.php i inne śmieci w tym check sumy plików.

Czy masz już nową tabelę phpbb_bots ?? Jeśli tak to pomijasz zapytanie CREATE TABLE, jeśli nie to wykonaj zapytanie w PA->MySQL (lub w MySqlAdmin):
Kod:
    CREATE TABLE phpbb_bots (bots_id int primary key auto_increment, bots_name varchar(255) not null, bots_ip text not null, bots_lastvisit int(11) unsigned not null, bots_visits int(11) unsigned not null, bots_ua varchar(50));
   
    INSERT INTO phpbb_bots (bots_name, bots_ip, bots_lastvisit, bots_visits) VALUES ('Googlebot/2.1', '66.249;66.154.103.123', 0, 0);
    INSERT INTO phpbb_bots (bots_name, bots_ip, bots_lastvisit, bots_visits) VALUES ('msnbot/1.0', '207.66.146;207.46.98.52;207.46.98.54', 0, 0);
    INSERT INTO phpbb_bots (bots_name, bots_ip, bots_lastvisit, bots_visits) VALUES ('psbot/0.1', '217.212.224.165', 0, 0);
    INSERT INTO phpbb_bots (bots_name, bots_ip, bots_lastvisit, bots_visits) VALUES ('Gigabot/2.0', '66.154.103.123', 0, 0);
    INSERT INTO phpbb_bots (bots_name, bots_ip, bots_lastvisit, bots_visits) VALUES ('OnetSzukaj/5.0', '213.180.128.151;213.180.128.152', 0, 0);
    INSERT INTO phpbb_bots (bots_name, bots_ip, bots_lastvisit, bots_visits) VALUES ('Yahoo! Slurp', '66.196.91.130', 0, 0);
    INSERT INTO phpbb_bots (bots_name, bots_ip, bots_lastvisit, bots_visits) VALUES ('NetSprint/2.0', '217.153.57.115', 0, 0);
   
    ALTER TABLE phpbb_sessions ADD session_ua VARCHAR(255);

Pamiętaj, aby zmienić prefix bazy jeśli masz inny (czyli to phpbb_ na taki jaki masz). Jeśli Twój prefix jest taki jak powyżej to wystarczy przekleić powyższy kod i go wykonać.

Jones - 20-04-2008, 13:57

Ustawilem uprawnienia. Sumami kontrolnymi sie pozniej zajme.

Prefix mam taki sam, ale dalej mi wyskakuje: 'Nie mogę wykonać: INSERT INTO phpbb_bots (bots_name, bots_ip, bots_lastvisit, bots_visits) VALUES ('Googlebot/2.1', '66.249'

meschiash - 20-04-2008, 14:00

A masz tabelę phpbb_bots ?
Jones - 20-04-2008, 14:07

meschiash napisał/a:
A masz tabelę phpbb_bots ?


Tak, dodalem ja.

Ech, zrobilem wszystko jak trzeba i:

Parse error: syntax error, unexpected T_VARIABLE in /home/markolf/public_html/forum/index.php on line 589

meschiash - 20-04-2008, 14:11

To najlepiej ją usuń i wykonaj całe powyższe zapytanie. Jeśli nie dasz rady to nie wiem jak mam Tobie pomóc.
edit: dotyczyło postu przed Twoją edycją.

Jones - 20-04-2008, 14:13

Uzylem zapytania: DROP TABLE `phpbb_bots;

Sprobuje jeszcze raz wgrac ta tabele...

[ Dodano: 20-04-2008, 15:18 ]
Tak jakby nie chcialo sie wgrac zapytanie dotyczace botow:

INSERT INTO phpbb_bots (bots_name, bots_ip, bots_lastvisit, bots_visits) VALUES ('Googlebot/2.1', '66.249;66.154.103.123', 0, 0); itd.

Igorow - 28-04-2008, 19:40

Mam prośbe wrzuciłby ktos przerobione pliki z czystej instalacji phpbb by przemo?? :) Zaoszczedzi to wiekszosci sporo czasu :)
m1chu - 06-05-2008, 21:25

Dzięki meschiash za informację. Wiedziałem, że się pomylę w pisaniu instrukcji :D Poprawiłem to co podałeś.
Poprawiony link: http://dev.m1chu.eu/index...ne_Bots_Manager

Cytat:
No i tyle co znalazłem. m1chu jak to poprawić ?

Co do tego:
Kod:
----- [ FIND ] -----
            $explodedip = explode(".", $guest_ip);

Należy pominąć. Za dużo CTRL+V po prostu.

Jeśli o to chodzi:
Cytat:
Następna instrukcja każe modyfikować dopiero co wstawiony kod tak jakby była to aktualizacja z wersji 1.1 do 1.2

To należy zainstalować tak jak jest napisane. Po prostu przypadkiem napisałem to w dwóch instrukcjach. Poprawiłem.

Reszta jest ok z tego co podałeś. Sorry wszystkim za problem.

Cytat:
Do tego pytanie. Czy przez powyższe instrukcje jest możliwe aby PA znacznie zwolniło swe wczytywanie ?? Jakie obciążenie generuje Online Bots Manager ??

Najoptymalniej działa wszystko na hostach. Po za tym, w PA nie powinno być dużego obciążenia, a na pewno powinno być mniejsze niż na stronie głównej. Skrypt musi przeszukać wszystkie np. hosty po kolei z każdej kategorii, z tymże po znalezieniu pierwszego w danej kategorii przechodzi do następnej. I tak dla każdej sesji na forum.

Cytat:
W admin/index.php wykonałem instrukcje takie jak w pliku instalacja.txt łącznie z:

Dokładnie tak. Te rzeczy też poprawiłem w instrukcji i opisałem wyżej.

Cytat:
Ustawilem uprawnienia. Sumami kontrolnymi sie pozniej zajme.

Prefix mam taki sam, ale dalej mi wyskakuje: 'Nie mogę wykonać: INSERT INTO phpbb_bots (bots_name, bots_ip, bots_lastvisit, bots_visits) VALUES ('Googlebot/2.1', '66.249'

Podaj dokładnie co wpisujesz w phpMyAdmin i napisz dokładnie treść błędu jaką otrzymujesz.

Cytat:
Parse error: syntax error, unexpected T_VARIABLE in /home/markolf/public_html/forum/index.php on line 589

Podaj okolice tych linijek w tym pliku jakie masz.



Powered by phpBB modified by Przemo © 2003 phpBB Group