diff options
Diffstat (limited to 'modules/syslog.inc.php')
-rw-r--r-- | modules/syslog.inc.php | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/modules/syslog.inc.php b/modules/syslog.inc.php index f8d99de3..62c94edf 100644 --- a/modules/syslog.inc.php +++ b/modules/syslog.inc.php @@ -12,26 +12,35 @@ function render_module() { Render::setTitle('Client Log'); - $filter = ''; - $not = ''; - if (isset($_POST['filter'])) $filter = $_POST['filter']; + if (isset($_GET['filter'])) { + $filter = $_GET['filter']; + $not = isset($_GET['not']) ? 'NOT' : ''; + } elseif (isset($_POST['filter'])) { + $filter = $_POST['filter']; + $not = isset($_POST['not']) ? 'NOT' : ''; + Session::set('log_filter', $filter); + Session::set('log_not', $not); + Session::save(); + } else { + $filter = Session::get('log_filter'); + $not = Session::get('log_not') ? 'NOT' : ''; + } if (!empty($filter)) { - $parts = explode(',', $filter); - $opt = array(); - foreach ($parts as $part) { - $part = preg_replace('/[^a-z0-9_\-]/', '', trim($part)); - if (empty($part) || in_array($part, $opt)) continue; - $opt[] = "'$part'"; + $filterList = explode(',', $filter); + $whereClause = array(); + foreach ($filterList as $filterItem) { + $filterItem = preg_replace('/[^a-z0-9_\-]/', '', trim($filterItem)); + if (empty($filterItem) || in_array($filterItem, $whereClause)) continue; + $whereClause[] = "'$filterItem'"; } - if (isset($_POST['not'])) $not = 'NOT'; - if (!empty($opt)) $opt = ' WHERE logtypeid ' . $not . ' IN (' . implode(', ', $opt) . ')'; + if (!empty($whereClause)) $whereClause = ' WHERE logtypeid ' . $not . ' IN (' . implode(', ', $whereClause) . ')'; } - if (!isset($opt) || empty($opt)) $opt = ''; + if (!isset($whereClause) || empty($whereClause)) $whereClause = ''; $today = date('d.m.Y'); $yesterday = date('d.m.Y', time() - 86400); $lines = array(); - $paginate = new Paginate("SELECT logid, dateline, logtypeid, clientip, description, extra FROM clientlog $opt ORDER BY logid DESC", 50); + $paginate = new Paginate("SELECT logid, dateline, logtypeid, clientip, description, extra FROM clientlog $whereClause ORDER BY logid DESC", 50); $res = $paginate->exec(); while ($row = $res->fetch(PDO::FETCH_ASSOC)) { $day = date('d.m.Y', $row['dateline']); |