function input_validate_input_regex($value, $regex) { if (!ereg($regex, $value) && $value != "") { die_html_input_error(); } }
function snmpagent_utilities_run_eventlog() { global $item_rows; define("MAX_DISPLAY_PAGES", 21); $severity_levels = array(SNMPAGENT_EVENT_SEVERITY_LOW => 'LOW', SNMPAGENT_EVENT_SEVERITY_MEDIUM => 'MEDIUM', SNMPAGENT_EVENT_SEVERITY_HIGH => 'HIGH', SNMPAGENT_EVENT_SEVERITY_CRITICAL => 'CRITICAL'); $severity_colors = array(SNMPAGENT_EVENT_SEVERITY_LOW => '#00FF00', SNMPAGENT_EVENT_SEVERITY_MEDIUM => '#FFFF00', SNMPAGENT_EVENT_SEVERITY_HIGH => '#FF0000', SNMPAGENT_EVENT_SEVERITY_CRITICAL => '#FF00FF'); $receivers = db_fetch_assoc("SELECT DISTINCT manager_id, hostname FROM snmpagent_notifications_log INNER JOIN snmpagent_managers ON snmpagent_managers.id = snmpagent_notifications_log.manager_id"); /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("receiver")); if (!in_array(get_request_var_request("severity"), array_keys($severity_levels)) && get_request_var_request("severity") != '-1' && get_request_var_request("severity") != "") { die_html_input_error(); } input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("rows")); /* ==================================================== */ /* clean up search filter */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var("filter")); } if (isset($_REQUEST["purge_x"])) { db_execute("TRUNCATE table snmpagent_notifications_log;"); /* reset filters */ $_REQUEST["clear_x"] = true; } /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear_x"])) { kill_session_var("sess_snmpagent__logs_receiver"); kill_session_var("sess_snmpagent__logs_severity"); kill_session_var("sess_snmpagent__logs_current_page"); kill_session_var("sess_snmpagent__logs_filter"); kill_session_var("sess_default_rows"); unset($_REQUEST["receiver"]); unset($_REQUEST["severity"]); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); unset($_REQUEST["rows"]); } /* reset the current page if the user changed the severity */ if (isset($_SESSION["sess_snmpagent__logs_severity"]) && get_request_var_request("severity") != $_SESSION["sess_snmpagent__logs_severity"]) { kill_session_var("sess_snmpagent__logs_current_page"); unset($_REQUEST["page"]); } /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("receiver", "sess_snmpagent__logs_receiver", "-1"); load_current_session_value("page", "sess_snmpagent__logs_current_page", "1"); load_current_session_value("severity", "sess_snmpagent__logs_severity", "-1"); load_current_session_value("filter", "sess_snmpagent__logs_filter", ""); load_current_session_value('rows', 'sess_default_rows', read_config_option('num_rows_table')); /* if the number of rows is -1, set it to the default */ if ($_REQUEST["rows"] == -1) { $_REQUEST["rows"] = read_config_option("num_rows_table"); } $_REQUEST['page_referrer'] = 'view_snmpagent_events'; load_current_session_value('page_referrer', 'page_referrer', 'view_snmpagent_events'); ?> <script type="text/javascript"> <!-- function applyFilter() { strURL = 'utilities.php?action=view_snmpagent_events'; strURL = strURL + '&severity=' + $('#severity').val(); strURL = strURL + '&receiver=' + $('#receiver').val(); strURL = strURL + '&rows=' + $('#rows').val(); strURL = strURL + '&filter=' + $('#filter').val(); strURL = strURL + '&page=' + $('#page').val(); strURL = strURL + '&header=false'; $.get(strURL, function(data) { $('#main').html(data); applySkin(); }); } function clearFilter() { strURL = 'utilities.php?action=view_snmpagent_events&clear_x=1&header=false'; $.get(strURL, function(data) { $('#main').html(data); applySkin(); }); } $(function(data) { $('#refresh').click(function() { applyFilter(); }); $('#clear').click(function() { clearFilter(); }); $('#form_snmpagent_notifications').submit(function(event) { event.preventDefault(); applyFilter(); }); }); --> </script> <?php html_start_box("<strong>SNMPAgent Notification Log</strong>", "100%", "", "3", "center", ""); ?> <tr class='even noprint'> <td> <form id='form_snmpagent_notifications' name="form_snmpagent_notifications" action="utilities.php"> <table cellpadding="2" cellspacing="0"> <tr> <td> Severity: </td> <td> <select id="severity" name="severity" onChange="applyFilter()"> <option value="-1"<?php if (get_request_var_request("severity") == "-1") { ?> selected<?php } ?> >Any</option> <?php foreach ($severity_levels as $level => $name) { print "<option value='" . $level . "'"; if (get_request_var_request("severity") == $level) { print " selected"; } print ">" . $name . "</option>\n"; } ?> </select> </td> <td> Receiver: </td> <td width="1"> <select id="receiver" name="receiver" onChange="applyFilter()"> <option value="-1"<?php if (get_request_var_request("receiver") == "-1") { ?> selected<?php } ?> >Any</option> <?php foreach ($receivers as $receiver) { print "<option value='" . $receiver["manager_id"] . "'"; if (get_request_var_request("receiver") == $receiver["manager_id"]) { print " selected"; } print ">" . $receiver["hostname"] . "</option>\n"; } ?> </select> </td> <td> Search: </td> <td> <input id='filter' type="text" name="filter" size="25" value="<?php print htmlspecialchars(get_request_var_request("filter")); ?> " onChange='applyFilter()'> </td> <td> Rows: </td> <td> <select id='rows' name="rows" onChange="applyFilter()"> <option value="-1"<?php if (get_request_var_request("rows") == "-1") { ?> selected<?php } ?> >Default</option> <?php if (sizeof($item_rows) > 0) { foreach ($item_rows as $key => $value) { print "<option value='" . $key . "'"; if (get_request_var_request("rows") == $key) { print " selected"; } print ">" . htmlspecialchars($value) . "</option>\n"; } } ?> </select> </td> <td> <input type="submit" id="refresh" name="go" value="Go" title="Set/Refresh Filters"> <input type="submit" id="clear" name="clear_x" value="Clear" title="Clear Filters"> <input type="submit" id="purge" name="purge_x" value="Purge" title="Purge Notification Log"> </td> </tr> </table> <input type='hidden' id='page' name='page' value='<?php print $_REQUEST['page']; ?> '> </form> </td> </tr> <?php html_end_box(); $sql_where = " 1"; /* filter by severity */ if (get_request_var_request("receiver") != "-1") { $sql_where .= " AND snmpagent_notifications_log.manager_id='" . get_request_var_request("receiver") . "'"; } /* filter by severity */ if (get_request_var_request("severity") == "-1") { /* Show all items */ } elseif (!empty($_REQUEST["severity"])) { $sql_where .= " AND snmpagent_notifications_log.severity='" . get_request_var_request("severity") . "'"; } /* filter by search string */ if (get_request_var_request("filter") != "") { $sql_where .= " AND (`varbinds` LIKE '%%" . get_request_var_request("filter") . "%%')"; } $sql_where .= ' ORDER by `time` DESC'; $sql_query = "SELECT snmpagent_notifications_log.*, snmpagent_managers.hostname, snmpagent_cache.description FROM snmpagent_notifications_log\n\t\t\t\t\t INNER JOIN snmpagent_managers ON snmpagent_managers.id = snmpagent_notifications_log.manager_id\n\t\t\t\t\t LEFT JOIN snmpagent_cache ON snmpagent_cache.name = snmpagent_notifications_log.notification\n\t\t\t\t\t WHERE {$sql_where} LIMIT " . read_config_option("num_rows_data_source") * (get_request_var_request("page") - 1) . "," . read_config_option("num_rows_data_source"); /* print checkbox form for validation */ print "<form name='chk' method='post' action='managers.php'>\n"; html_start_box("", "100%", "", "3", "center", ""); $total_rows = db_fetch_cell("SELECT COUNT(*) FROM snmpagent_notifications_log WHERE {$sql_where}"); $logs = db_fetch_assoc($sql_query); /* generate page list */ $nav = html_nav_bar("utilities.php?action=view_snmpagent_events&severity=" . get_request_var_request("severity") . "&receiver=" . get_request_var_request("receiver") . "&filter=" . get_request_var_request("filter"), MAX_DISPLAY_PAGES, get_request_var_request("page"), get_request_var_request("rows"), $total_rows, 11, '', 'page', 'main'); print $nav; html_header(array(" ", "Time", "Receiver", "Notification", "Varbinds")); if (sizeof($logs) > 0) { foreach ($logs as $item) { $varbinds = strlen(get_request_var_request("filter")) ? preg_replace("/(" . preg_quote(get_request_var_request("filter"), "/") . ")/i", "<span style='background-color: #F8D93D;'>\\1</span>", $item["varbinds"]) : $item["varbinds"]; form_alternate_row('line' . $item["id"], false); print "<td title='Severity Level: " . $severity_levels[$item["severity"]] . "' style='width:10px;background-color: " . $severity_colors[$item["severity"]] . ";border-top:1px solid white;border-bottom:1px solid white;'></td>"; print "<td style='white-space: nowrap;'>" . date("Y/m/d H:i:s", $item["time"]) . "</td>"; print "<td>" . $item["hostname"] . "</td>"; if ($item["description"]) { print '<td><a href="#" title="<div class=\'header\'>' . $item["notification"] . '</div><div class=\'content preformatted\'>' . $item["description"] . '</div>" class="tooltip">' . $item["notification"] . '</a></td>'; } else { print "<td>{$item["notification"]}</td>"; } print "<td>{$varbinds}</td>"; form_end_row(); } print $nav; } else { print "<tr><td><em>No SNMP Notification Log Entries</em></td></tr>"; } html_end_box(); ?> <script language="javascript" type="text/javascript" > $('.tooltip').tooltip({ track: true, position: { collision: "flipfit" }, content: function() { return $(this).attr('title'); } }); </script> <?php }
include "./include/auth.php"; include_once "./lib/rrd.php"; api_plugin_hook_function('graph_image'); /* ================= input validation ================= */ input_validate_input_number(get_request_var("graph_start")); input_validate_input_number(get_request_var("graph_end")); input_validate_input_number(get_request_var("graph_height")); input_validate_input_number(get_request_var("graph_width")); input_validate_input_number(get_request_var("local_graph_id")); input_validate_input_number(get_request_var("rra_id")); /* ==================================================== */ if (!is_numeric(get_request_var("local_graph_id"))) { die_html_input_error(); } if (!is_numeric(get_request_var("local_graph_id"))) { die_html_input_error(); } header("Content-type: image/png"); /* flush the headers now */ ob_end_clean(); session_write_close(); $graph_data_array = array(); /* override: graph start time (unix time) */ if (!empty($_GET["graph_start"]) && $_GET["graph_start"] < 1600000000) { $graph_data_array["graph_start"] = $_GET["graph_start"]; } /* override: graph end time (unix time) */ if (!empty($_GET["graph_end"]) && $_GET["graph_end"] < 1600000000) { $graph_data_array["graph_end"] = $_GET["graph_end"]; } /* override: graph height (in pixels) */
function input_validate_input_regex($value, $regex) { if (!preg_match('/' . $regex . '/', $value) && $value != '') { die_html_input_error(); } }
function input_validate_input_regex($value, $regex) { if ((!preg_match($regex, $value)) && ($value != "")) { die_html_input_error(); } }
function manager_logs($id) { global $colors, $severity_levels, $severity_colors; /* ================= input validation ================= */ if (!$id | !is_numeric($id)) { die_html_input_error(); } if (!in_array(get_request_var_request("severity"), array_keys($severity_levels)) && get_request_var_request("severity") != '-1' && get_request_var_request("severity") != "") { die_html_input_error(); } input_validate_input_number(get_request_var_request("page")); /* ==================================================== */ /* clean up search filter */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var_request("filter")); } if (isset($_REQUEST["purge_snmpagent__manager_logs_x"])) { db_execute("DELETE FROM snmpagent_notifications_log WHERE manager_id = {$id};"); /* reset filters */ $_REQUEST["clear_snmpagent__manager_logs_x"] = true; } /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear_snmpagent__manager_logs_x"])) { kill_session_var("sess_snmpagent__manager_logs_severity"); kill_session_var("sess_snmpagent__manager_logs_current_page"); kill_session_var("sess_snmpagent__manager_logs_filter"); unset($_REQUEST["severity"]); unset($_REQUEST["page"]); unset($_REQUEST["filter"]); } /* reset the current page if the user changed the mib filter*/ if (isset($_SESSION["sess_snmpagent__manager_logs_severity"]) && get_request_var_request("severity") != $_SESSION["sess_snmpagent__manager_logs_severity"]) { kill_session_var("sess_snmpagent__manager_notifications_cache_current_page"); unset($_REQUEST["page"]); } /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_snmpagent__manager_logs_current_page", "1"); load_current_session_value("severity", "sess_snmpagent__manager_logs_severity", "-1"); load_current_session_value("filter", "sess_snmpagent__manager_logs_filter", ""); ?> <script type="text/javascript"> <!-- function applyViewSNMPAgentCacheFilterChange(objForm) { strURL = '?severity=' + objForm.severity.value; strURL = strURL + '&filter=' + objForm.filter.value; strURL = strURL + '&action=edit&tab=logs&id=<?php print $_REQUEST["id"]; ?> '; document.location = strURL; } --> </script> <tr bgcolor="#<?php print $colors["panel"]; ?> "> <td> <form name="form_snmpagent_manager_logs" action="managers.php"> <table cellpadding="0" cellspacing="0"> <tr> <td nowrap style='white-space: nowrap;' width="50"> Severity: </td> <td width="1"> <select name="severity" onChange="applyViewSNMPAgentCacheFilterChange(document.form_snmpagent_manager_logs)"> <option value="-1"<?php if (get_request_var_request("severity") == "-1") { ?> selected<?php } ?> >Any</option> <?php foreach ($severity_levels as $level => $name) { print "<option value='" . $level . "'"; if (get_request_var_request("severity") == $level) { print " selected"; } print ">" . $name . "</option>\n"; } ?> </select> </td> <td nowrap style='white-space: nowrap;' width="50"> Search: </td> <td width="1"> <input type="text" name="filter" size="20" value="<?php print htmlspecialchars(get_request_var_request("filter")); ?> "> </td> <td nowrap style='white-space: nowrap;'> <input type="submit" name="go" value="Go" title="Set/Refresh Filters"> <input type="submit" name="clear_snmpagent__manager_logs_x" value="Clear" title="Clear Filters"> <input type="submit" name="purge_snmpagent__manager_logs_x" value="Purge" title="Purge Notification Log"> </td> </tr> </table> <input type='hidden' name='page' value='1'> <input type='hidden' name='action' value='edit'> <input type='hidden' name='tab' value='logs'> <input type='hidden' name='id' value='<?php print $_REQUEST["id"]; ?> '> </form> </td> </tr> <?php html_end_box(); $sql_where = " snmpagent_notifications_log.manager_id='" . $id . "'"; /* filter by severity */ if (get_request_var_request("severity") == "-1") { /* Show all items */ } elseif (!empty($_REQUEST["severity"])) { $sql_where .= " AND snmpagent_notifications_log.severity='" . get_request_var_request("severity") . "'"; } /* filter by search string */ if (get_request_var_request("filter") != "") { $sql_where .= " AND (`varbinds` LIKE '%%" . get_request_var_request("filter") . "%%')"; } $sql_where .= ' ORDER by `id` DESC'; $sql_query = "SELECT snmpagent_notifications_log.*, snmpagent_cache.description FROM snmpagent_notifications_log\n\t\t\t\t\t LEFT JOIN snmpagent_cache ON snmpagent_cache.name = snmpagent_notifications_log.notification\n\t\t\t\t\t WHERE {$sql_where} LIMIT " . read_config_option("num_rows_data_source") * (get_request_var_request("page") - 1) . "," . read_config_option("num_rows_data_source"); /* print checkbox form for validation */ print "<form name='chk' method='post' action='managers.php'>\n"; html_start_box("", "100%", $colors["header"], "3", "center", ""); $total_rows = db_fetch_cell("SELECT COUNT(*) FROM snmpagent_notifications_log WHERE {$sql_where}"); $logs = db_fetch_assoc($sql_query); /* generate page list */ $url_page_select = get_page_list(get_request_var_request("page"), MAX_DISPLAY_PAGES, read_config_option("num_rows_data_source"), $total_rows, "managers.php?action=edit&id=" . $id . "&tab=logs&mib=" . get_request_var_request("mib") . "&filter=" . get_request_var_request("filter")); $nav = "<tr bgcolor='#" . $colors["header"] . "'>\n\t\t<td colspan='7'>\n\t\t\t<table width='100%' cellspacing='0' cellpadding='0' border='0'>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align='left' class='textHeaderDark'>\n\t\t\t\t\t\t<strong><< "; if (get_request_var_request("page") > 1) { $nav .= "<a class='linkOverDark' href='" . htmlspecialchars("managers.php?action=edit&id=" . $id . "&tab=logs&mib=" . get_request_var_request("mib") . "&filter=" . get_request_var_request("filter") . "&page=" . (get_request_var_request("page") - 1)) . "'>"; } $nav .= "Previous"; if (get_request_var_request("page") > 1) { $nav .= "</a>"; } $nav .= "</strong>\n\t\t\t\t\t</td>\n\n\t\t\t\t\t<td align='center' class='textHeaderDark'>\n\t\t\t\t\t\tShowing Rows " . (read_config_option("num_rows_data_source") * (get_request_var_request("page") - 1) + 1) . " to " . ($total_rows < read_config_option("num_rows_data_source") || $total_rows < read_config_option("num_rows_data_source") * get_request_var_request("page") ? $total_rows : read_config_option("num_rows_data_source") * get_request_var_request("page")) . " of {$total_rows} [{$url_page_select}]\n\t\t\t\t\t</td>\n\n\t\t\t\t\t<td align='right' class='textHeaderDark'>\n\t\t\t\t\t\t<strong>"; if (get_request_var_request("page") * read_config_option("num_rows_data_source") < $total_rows) { $nav .= "<a class='linkOverDark' href='" . htmlspecialchars("managers.php?action=edit&id=" . $id . "&tab=logs&mib=" . get_request_var_request("mib") . "&filter=" . get_request_var_request("filter") . "&page=" . (get_request_var_request("page") + 1)) . "'>"; } $nav .= "Next"; if (get_request_var_request("page") * read_config_option("num_rows_data_source") < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong>\n\t\t\t\t\t</td>\n\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n"; print $nav; html_header(array(" ", "Time", "Notification", "Varbinds")); $i = 0; if (sizeof($logs) > 0) { foreach ($logs as $item) { $varbinds = strlen(get_request_var_request("filter")) ? preg_replace("/(" . preg_quote(get_request_var_request("filter"), "/") . ")/i", "<span style='background-color: #F8D93D;'>\\1</span>", $item["varbinds"]) : $item["varbinds"]; form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $item['id']); $i++; print "<td title='Severity Level: " . $severity_levels[$item["severity"]] . "' style='width:10px;background-color: " . $severity_colors[$item["severity"]] . ";border-top:1px solid white;border-bottom:1px solid white;'></td>"; print "<td style='white-space: nowrap;'>" . date("Y/m/d H:i:s", $item["time"]) . "</td>"; if ($item["description"]) { $description = ''; $lines = preg_split('/\\r\\n|\\r|\\n/', $item['description']); foreach ($lines as $line) { $description .= addslashes(trim($line)) . '<br>'; } print '<td><a href="#" onMouseOut="hideTooltip(snmpagentTooltip)" onMouseMove="showTooltip(event, snmpagentTooltip, \'' . $item["notification"] . '\', \'' . $description . '\')">' . $item["notification"] . '</a></td>'; } else { print "<td>{$item["notification"]}</td>"; } print "<td>{$varbinds}</td>"; form_end_row(); } print $nav; } else { print "<tr><td><em>No SNMP Notification Log Entries</em></td></tr>"; } ?> <input type='hidden' name='id' value='<?php print $_REQUEST["id"]; ?> '> <div style="display:none" id="snmpagentTooltip"></div> <script language="javascript" type="text/javascript" > function showTooltip(e, div, title, desc) { div.style.display = 'inline'; div.style.position = 'fixed'; div.style.backgroundColor = '#EFFCF0'; div.style.border = 'solid 1px grey'; div.style.padding = '10px'; div.innerHTML = '<b>' + title + '</b><div style="padding-left:10; padding-right:5"><pre>' + desc + '</pre></div>'; div.style.left = e.clientX + 15 + 'px'; div.style.top = e.clientY + 15 + 'px'; } function hideTooltip(div) { div.style.display = 'none'; } function highlightStatus(selectID){ if (document.getElementById('status_' + selectID).value == 'ON') { document.getElementById('status_' + selectID).style.backgroundColor = 'LawnGreen'; }else { document.getElementById('status_' + selectID).style.backgroundColor = 'OrangeRed'; } } </script> <?php }