function module_top_agent_os($arguments) { global $gDb, $gData; global $lvc_nb_top_agent_os; global $lvc_display_cache_delay; global $lvc_table_visitors; global $lvm_top_agent_os, $lvm_agent, $lvm_number; $is_archived = $arguments['archive']; if ($is_archived) { $values = explode("+", $gData['topNavOS']); $limit = sizeof($values) / 2; for ($cnt = 0; $cnt < $limit; $cnt++) { $row[$cnt]['agent'] = $values[2 * $cnt]; $row[$cnt]['nb'] = $values[2 * $cnt + 1]; } } else { $month = $arguments['month']; $year = $arguments['year']; $query = "SELECT AGENT, COUNT(*) AS C "; $query .= "FROM " . $lvc_table_visitors . " "; $query .= "WHERE AGENT <> '' AND DATE LIKE '" . $year . "/" . sprintf("%02d", $month) . "/%' "; $query .= "GROUP BY AGENT "; $query .= "ORDER BY C DESC, AGENT "; if ($gDb->DbQuery($query, 0, $lvc_nb_top_agent_os) && $gDb->DbNumRows() != 0) { $cnt = 0; while ($gDb->DbNextRow()) { $record = $gDb->Row; $row[$cnt]['agent'] = $record['AGENT']; $row[$cnt]['nb'] = $record['C']; $cnt++; } } else { return ''; } } $buffer = "<BR><CENTER><TABLE CELLSPACING=1 BORDER=0>\n"; $buffer .= "<TR><TD COLSPAN=2><A CLASS='array'>"; $buffer .= str_replace("{NB_TOP_AGENT_OS}", $lvc_nb_top_agent_os, $lvm_top_agent_os) . "</A></TD></TR>\n"; $buffer .= "<TR>"; $buffer .= "<TH CLASS='vis'>" . $lvm_agent . "</TH>"; $buffer .= "<TH CLASS='vis' nowrap> " . $lvm_number . " </TH></TR>\n"; for ($cnt = 0; $cnt < $lvc_nb_top_agent_os; $cnt++) { $buffer .= "<TR>"; $buffer .= "<TD CLASS='vis'> <A CLASS='item'>" . extract_agent($row[$cnt]['agent']) . "</A> </TD>"; $buffer .= "<TD CLASS='vis' ALIGN='right' NOWRAP> " . ($row[$cnt]['nb'] != 0 ? number_format($row[$cnt]['nb'], 0, '', ' ') : '') . " </TD>"; $buffer .= "</TR>\n"; } // cache delay if ($lvc_display_cache_delay) { $buffer .= "<TR><TD ALIGN='center' COLSPAN='2'>"; $buffer .= "<A CLASS='delay'>" . cache_delay($arguments['cache']) . "</A>"; } $buffer .= "</TABLE></CENTER><BR>\n"; return $buffer; }
} } } } } if (!$found) { $referer = $HTTP_REFERER; $url = parse_url($referer); $ref_host = $url['scheme'] . '://' . $url['host'] . '/'; if ($ref_host == ':///') { $ref_host = ''; } elseif ($ref_host == 'news:///' || $ref_host == 'news://news/') { $ref_host = 'news:'; } $rows_list = 'DATE, ADDR, HOST, AGENT, REFERER, REF_HOST'; $agent = extract_agent($HTTP_USER_AGENT); $values_list = "'" . date('Y/m/d H:i') . "',"; // DATE $values_list .= "'" . $REMOTE_ADDR . "',"; // ADDR $values_list .= "'" . gethostbyaddr($REMOTE_ADDR) . "',"; // HOST $values_list .= "'" . $agent . "',"; // AGENT $values_list .= "'" . AddSlashes(strip_tags($referer)) . "',"; // REFERER $values_list .= "'" . AddSlashes(strip_tags($ref_host)) . "'"; // REF_HOST $query = 'INSERT INTO ' . $lvc_table_visitors . ' (' . $rows_list . ') VALUES (' . $values_list . ')'; if ($connected) { $gDb->DbQuery($query);
function module_last_visitors($arguments) { global $gDb; global $lvc_nb_last_visitors; global $lvc_hide_IP; global $lvc_table_visitors; global $lvc_display_cache_delay; global $lvm_last_visitors, $lvm_agent, $lvm_host, $lvm_time; $buffer .= "<BR><CENTER><TABLE CELLSPACING=1 BORDER=0>\n"; $buffer .= "<TR><TD COLSPAN=2 ALIGN='left'>"; $buffer .= "<A CLASS='array'>"; $buffer .= str_replace("{NB_LAST_VISITORS}", $lvc_nb_last_visitors, $lvm_last_visitors) . "</A> "; $buffer .= "</TD><TD COLSPAN=2 ALIGN='right'> "; if ($lvc_display_cache_delay) { $buffer .= "<A CLASS='delay'>" . cache_delay($arguments['cache']) . "</A>"; } $buffer .= "</TD></TR>\n"; $buffer .= "<TR>"; $buffer .= "<TH CLASS='vis'>" . $lvm_agent . "</TH>"; $buffer .= "<TH CLASS='vis'>@ IP</TH>"; $buffer .= "<TH CLASS='vis'>" . $lvm_host . "</TH>"; $buffer .= "<TH CLASS='vis'> " . $lvm_time . " </TH>"; $buffer .= "</TR>\n"; $query = "SELECT AGENT, ADDR, HOST, DATE, REFERER, REF_HOST "; $query .= "FROM " . $lvc_table_visitors . " "; $query .= "ORDER BY DATE DESC, CODE DESC "; if ($gDb->DbQuery($query, 0, $lvc_nb_last_visitors) && $gDb->DbNumRows() != 0) { $cnt = 0; while ($gDb->DbNextRow()) { $record = $gDb->Row; $row[$cnt]['agent'] = $record['AGENT']; $row[$cnt]['addr'] = $record['ADDR']; $row[$cnt]['host'] = $record['HOST']; $row[$cnt]['date'] = $record['DATE']; $row[$cnt]['referer'] = $record['REFERER']; $row[$cnt]['ref_host'] = $record['REF_HOST']; $cnt++; } } // loading engines $arr_engines = load_engines(); $prev_date = ''; for ($cnt = 0; $cnt < $lvc_nb_last_visitors; $cnt++) { // separation between 2 days $date = substr($row[$cnt]['date'], 8, 2) . "/"; $date .= substr($row[$cnt]['date'], 5, 2); if ($date != $prev_date && $prev_date != '') { $buffer .= "<TR><TH BGCOLOR='#FFFFAA' COLSPAN='4' HEIGHT='1' CLASS='vis'>"; $buffer .= html_image("images/nothing.gif"); $buffer .= "</TH></TR>\n"; } $prev_date = $date; $buffer .= "<TR>"; // agent $buffer .= "<TD CLASS='vis'> " . extract_agent($row[$cnt]['agent']) . " </TD>\n"; // ip + host if ($row[$cnt]['host'] == $row[$cnt]['addr'] || $row[$cnt]['host'] == "") { // no hostname, only ip $buffer .= "<TD CLASS='vis'> "; $buffer .= "<A CLASS='host'>" . ($lvc_hide_IP ? hide_machine($row[$cnt]['addr']) : $row[$cnt]['addr']) . "</A>"; $buffer .= " </TD>"; $buffer .= "<TD CLASS='vis'> </TD>"; } else { // ip $buffer .= "<TD CLASS='vis'> <A CLASS='host'>" . ($lvc_hide_IP ? hide_machine($row[$cnt]['addr']) : $row[$cnt]['addr']) . "</A> </TD>"; // server $buffer .= "<TD CLASS='vis'> [<A HREF='http://" . extract_server($row[$cnt]['host']) . "/' CLASS='server' TARGET='_blank'>Srv</A>] "; // host $buffer .= "<A CLASS='host'>" . ($lvc_hide_IP ? hide_machine($row[$cnt]['host']) : $row[$cnt]['host']) . "</A> </TD>"; } // datetime $buffer .= "<TD CLASS='vis'><CENTER> " . ($row[$cnt]['date'] != '' ? show_datetime($row[$cnt]['date']) : '') . " </CENTER></TD>"; $buffer .= "</TR>\n"; // referer if ($row[$cnt]['ref_host'] != '') { $buffer .= "<TR><TD COLSPAN='4' CLASS='visref'>"; $buffer .= show_keywords($row[$cnt]['referer'], $row[$cnt]['ref_host'], $arr_engines); $buffer .= "</TD></TR>\n"; } } $buffer .= "</TABLE></CENTER>\n"; $buffer .= "<BR>"; return $buffer; }