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 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.
|
|
|