Категории |
отображение имени ботая вот смотрел в phpmyadmin, что там есть название ботов которые посещают магазин, как можно вывести их в админке, Кто сейчас в магазине - имя, напр. так: marketgid, google, yandex... Очень интересный вопрос! Неужели в Шопосе этого нельзя сделать? Очень интересный вопрос! Неужели в Шопосе этого нельзя сделать? да можно абсолютно все доделать. любую функцию, которая есть в других движках по поводу ботов - можно попробовать в файле includes\functions\admin.include.php заменить код > 0) { os_db_query("update " . TABLE_WHOS_ONLINE . " set customer_id = '" . $wo_customer_id . "', full_name = '" . $wo_full_name . "', ip_address = '" . $wo_ip_address . "', time_last_click = '" . $current_time . "', last_page_url = '" . $wo_last_page_url . "' where session_id = '" . $wo_session_id . "'"); } else { os_db_query("insert into " . TABLE_WHOS_ONLINE . " (customer_id, full_name, session_id, ip_address, time_entry, time_last_click, last_page_url) values ('" . $wo_customer_id . "', '" . $wo_full_name . "', '" . $wo_session_id . "', '" . $wo_ip_address . "', '" . $current_time . "', '" . $current_time . "', '" . $wo_last_page_url . "')"); } } на > 0) { os_db_query("update " . TABLE_WHOS_ONLINE . " set customer_id = '" . $wo_customer_id . "', full_name = '" . $wo_full_name . "', ip_address = '" . $wo_ip_address . "', time_last_click = '" . $current_time . "', bot='".$bot."', last_page_url = '" . $wo_last_page_url . "' where session_id = '" . $wo_session_id . "'"); } else { os_db_query("insert into " . TABLE_WHOS_ONLINE . " (customer_id, full_name, session_id, ip_address, time_entry, time_last_click, last_page_url, bot) values ('" . $wo_customer_id . "', '" . $wo_full_name . "', '" . $wo_session_id . "', '" . $wo_ip_address . "', '" . $current_time . "', '" . $current_time . "', '" . $wo_last_page_url . "', '".$bot."')"); } } ALTER TABLE os_whos_online ADD bot text( 10 ) NOT NULL и содержимое файла admin\whos_online.php заменить на <?php /* ##################################### # ShopOS: Shopping Cart Software. # Copyright (c) 2008-2010 # http://www.shopos.ru # http://www.shoposs.com # Ver. 1.0.0 ##################################### */ $xx_mins_ago = (time() - 900); require('includes/top.php'); require(_CLASS.'price.php'); os_db_query("delete from " . TABLE_WHOS_ONLINE . " where time_last_click < '" . $xx_mins_ago . "'"); $main->head(); function bot_name($bot) { $bot_names = ''; $bot_names['Google'] = 'Googlebot'; $bot_names['Yandex'] = 'Yandex'; $bot_names['Rambler'] = 'StackRambler'; $bot_names['MSN'] = 'msnbot/'; $bot_names['Yahoo!'] = 'Yahoo! Slurp'; $bot_names['WordPress'] = 'WordPress/'; $bot_names['Twiceler'] = 'Twiceler'; $bot_names['iGde'] = 'igdeSpyder'; $bot_names['Baidu'] = 'Baiduspider+'; $bot_names['Majestic-12 '] = 'MJ12bot/'; $bot_names['W3C '] = 'Validator'; $bot_names['Alexa'] = 'ia_archiver'; $bot_names['W3 '] = 'W3 SiteSearch Crawler'; $bot_names['MSNbot Media'] = 'msnbot-media/'; $bot_names['Google '] = 'AdsBot-Google'; $bot_names['Aport'] = 'Aport'; $bot_names['Google '] = 'Mediapartners-Google'; $bot_names['Yandex.Direct'] = 'Direct/2.01.000'; $bot_names['Yanga'] = 'Yanga WorldSearch'; $bot_names['Tele-House'] = 'Dolphin/'; $bot_names['NetCraft'] = 'NetcraftSurveyAgent/'; $bot_names['BlogPulse'] = 'BlogPulse'; $bot_names['Boomerang'] = 'Boomerang/'; $bot_names['Tagoo'] = 'Tagoobot'; $bot_names['Ovale'] = 'ovalebot'; $bot_names['FollowSite'] = 'FollowSite Bot'; $bot_names['OMG Crawler'] = 'OMGCrawler'; $bot_names['Huasai'] = 'Huasai/'; $bot_names['DobroBot'] = 'DobroBot'; $bot_names['PostRank'] = 'PostRank/'; $bot_names['FriendFeed'] = 'FriendFeedBot/'; $bot_names['Amazon'] = 'bitlybot'; $bot_names['Worio'] = 'woriobot'; $bot_names['Twingly'] = 'Twingly Recon'; $bot_names['OozBot'] = 'OOZBOT/'; $bot_names['Snap Shots'] = 'Snapbot/'; $bot_names['GoldenSpider'] = 'GoldenSpider/'; $bot_names['Libra '] = 'librabot/'; $bot_names['Youdao'] = 'YoudaoBot/'; $bot_names['BlogScope'] = 'BlogScope/'; $bot = strtolower($bot); foreach ($bot_names as $_name => $_value) { $value = strtolower($_value); $_bot = strpos($bot, $value); if (!empty($_bot)) { return $bot_names; } } return '-'; } ?> <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF"> <?php $main->top_menu(); ?> <table border="0" width="100%" cellspacing="2" cellpadding="2"> <tr> <td class="boxCenter" width="100%" valign="top"> <?php os_header('portfolio_package.gif',HEADING_TITLE); if (SET_WHOS_ONLINE == "true") { ?> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr class="dataTableHeadingRow"> <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_ONLINE; ?></td> <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_CUSTOMER_ID; ?></td> <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_FULL_NAME; ?></td> <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_IP_ADDRESS; ?></td> <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_ENTRY_TIME; ?></td> <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_LAST_CLICK; ?></td> <td class="dataTableHeadingContent" align="center">bot</td> <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_LAST_PAGE_URL; ?> </td> </tr> <?php $whos_online_query = os_db_query("select customer_id, full_name, ip_address, time_entry, time_last_click, last_page_url, session_id, bot from " . TABLE_WHOS_ONLINE ." order by time_last_click desc"); while ($whos_online = os_db_fetch_array($whos_online_query)) { $time_online = (time() - $whos_online['time_entry']); if ( ((!$_GET['info']) || (@$_GET['info'] == $whos_online['session_id'])) && (!$info) ) { $info = $whos_online['session_id']; } if ($whos_online['session_id'] == $info) { echo ' <tr class="dataTableRowSelected">' . "\n"; } else { echo ' <tr class="dataTableRow" onmouseover="this.className=\'dataTableRowOver\';this.style.cursor=\'hand\'" onmouseout="this.className=\'dataTableRow\'" onclick="document.location.href=\'' . os_href_link(FILENAME_WHOS_ONLINE, os_get_all_get_params(array('info', 'action')) . 'info=' . $whos_online['session_id'], 'NONSSL') . '\'">' . "\n"; } ?> <td class="dataTableContent"><?php echo gmdate('H:i:s', $time_online); ?></td> <td class="dataTableContent" align="center"><?php echo $whos_online['customer_id']; ?></td> <td class="dataTableContent"><?php echo $whos_online['full_name']; ?></td> <td class="dataTableContent" align="center"><?php echo $whos_online['ip_address']; ?></td> <td class="dataTableContent"><?php echo date('H:i:s', $whos_online['time_entry']); ?></td> <td class="dataTableContent" align="center"><?php echo date('H:i:s', $whos_online['time_last_click']); ?></td> <td class="dataTableContent" align="center"><?php echo bot_name($whos_online['bot']); ?></td> <td class="dataTableContent"><?php if (preg_match('/^(.*)' . os_session_name() . '=+*(.*)/i', $whos_online['last_page_url'], $array)) { echo $array . $array; } else { echo $whos_online['last_page_url']; } ?> </td> </tr> <?php } ?> <tr> <td class="smallText" colspan="7"><?php echo sprintf(TEXT_NUMBER_OF_CUSTOMERS, os_db_num_rows($whos_online_query)); ?></td> </tr> </table></td> <?php $heading = array(); $contents = array(); if ($info) { $heading[] = array('text' => '<b>' . TABLE_HEADING_SHOPPING_CART . '</b>'); if (STORE_SESSIONS == 'mysql') { $session_data = os_db_query("select value from " . TABLE_SESSIONS . " WHERE sesskey = '" . $info . "'"); $session_data = os_db_fetch_array($session_data); $session_data = trim($session_data['value']); } else { if ( (file_exists(os_session_save_path() . '/sess_' . $info)) && (filesize(os_session_save_path() . '/sess_' . $info) > 0) ) { $session_data = file(os_session_save_path() . '/sess_' . $info); $session_data = trim(implode('', $session_data)); } } $user_session = unserialize_session_data($session_data); if ($user_session) { $products = os_get_products($user_session); for ($i = 0, $n = sizeof($products); $i < $n; $i++) { $contents[] = array('text' => $products['quantity'] . ' x ' . $products['name']); } if (sizeof($products) > 0) { $contents[] = array('text' => os_draw_separator('pixel_black.gif', '100%', '1')); $contents[] = array('align' => 'right', 'text' => TEXT_SHOPPING_CART_SUBTOTAL . ' ' . $user_session['cart']->total . ' ' . $user_session['currency']); } else { $contents[] = array('text' => ' '); } } } if ( (os_not_null($heading)) && (os_not_null($contents)) ) { echo ' <td width="25%" valign="top">' . "\n"; $box = new box; echo $box->infoBox($heading, $contents); echo ' </td>' . "\n"; } ?> </tr> </table></td> </tr> </table> <?php } else { echo ("Модуль: ".HEADING_TITLE." - отключен;<br>"); echo ("<a href='configuration.php?gID=17'>Настройка -> Разное -> Быстрое оформление</a>"); } ?> </td> </tr> </table> <?php $main->bottom(); ?> только не знаю были ботнеты ? были ботнеты ? не знаю. не смотрел вещь очень бесполезная :) но если работает - хорошо)) вот если бы ещё лог файл вести в который бы писалось кто и когда был, было бы замечательно (смотреть историю посещений). вот если бы ещё лог файл вести в который бы писалось кто и когда был, было бы замечательно (смотреть историю посещений). так в чем проблема еще +1 запрос можно реализовать все просто для этого больше годятся готовые счетчики, сервисы для ведения статистики, которые нет смысла писать с 0я кто то пытается это расширение использовать для взлома. ; на ; $bot = mysql_real_escape_string ($bot); в качестве HTTP_USER_AGENT посылают какой то php код. только толку. он же нигде не выполняется. навсякий случай поменяйте или отключите вообще расширение кто онлайн. если не нужно |
|