diff --git a/src/server/cyberhex-code/system/secure_zone/php/view_log.php b/src/server/cyberhex-code/system/secure_zone/php/view_log.php index b4ff0ea..5ef055d 100644 --- a/src/server/cyberhex-code/system/secure_zone/php/view_log.php +++ b/src/server/cyberhex-code/system/secure_zone/php/view_log.php @@ -18,6 +18,22 @@ if($perms[2]!=="1"){ }else{ $block=0; } + +// Handle filter submission +if(isset($_GET["filter_submit"])){ + $loglevel = isset($_GET["loglevel"]) ? $_GET["loglevel"] : ""; + $logtext = isset($_GET["logtext"]) ? $_GET["logtext"] : ""; + $machine_id = isset($_GET["machine_id"]) ? $_GET["machine_id"] : ""; + $time = isset($_GET["time"]) ? $_GET["time"] : ""; + $filter_query = "&loglevel=$loglevel&logtext=$logtext&machine_id=$machine_id&time=$time"; +}else{ + $loglevel = ""; + $logtext = ""; + $machine_id = ""; + $time = ""; + $filter_query = ""; +} + ?> @@ -67,27 +83,38 @@ if($perms[2]!=="1"){ } // Define page size and current page - $page_size = 100; + $page_size = 50; $current_page = isset($_GET['page']) ? intval($_GET['page']) : 1; $offset = ($current_page - 1) * $page_size; - // Get total number of log entries + // Get total number of log entries based on filters $conn = new mysqli($DB_SERVERNAME, $DB_USERNAME, $DB_PASSWORD, $DB_DATABASE); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } - $sql = "SELECT count(*) AS log_count FROM log"; - $result = $conn->query($sql); + $sql = "SELECT count(*) AS log_count FROM log WHERE loglevel LIKE ? AND logtext LIKE ? AND machine_id LIKE ? AND time LIKE ?"; + $stmt = $conn->prepare($sql); + $loglevel = "%" . $loglevel . "%"; + $logtext = "%" . $logtext . "%"; + $machine_id = "%" . $machine_id . "%"; + $time = "%" . $time . "%"; + $stmt->bind_param("ssss", $loglevel, $logtext, $machine_id, $time); + $stmt->execute(); + $result = $stmt->get_result(); $row = $result->fetch_assoc(); $total_entries = $row["log_count"]; // Calculate total pages $total_pages = ceil($total_entries / $page_size); - // Query log entries for the current page - $sql = "SELECT * FROM log ORDER BY id DESC LIMIT ?, ?"; + // Query log entries for the current page with filters + $sql = "SELECT * FROM log WHERE loglevel LIKE ? AND logtext LIKE ? AND machine_id LIKE ? AND time LIKE ? ORDER BY id DESC LIMIT ?, ?"; $stmt = $conn->prepare($sql); - $stmt->bind_param("ii", $offset, $page_size); + $loglevel = "%" . $loglevel . "%"; + $logtext = "%" . $logtext . "%"; + $machine_id = "%" . $machine_id . "%"; + $time = "%" . $time . "%"; + $stmt->bind_param("ssssii", $loglevel, $logtext, $machine_id, $time, $offset, $page_size); $stmt->execute(); $result = $stmt->get_result(); @@ -101,59 +128,38 @@ if($perms[2]!=="1"){ echo '
'; // Display filter options - $loglevel_ss = isset($_GET["loglevel"]) ? $_GET["loglevel"] : "Loglevel"; - $logtext_ss = isset($_GET["logtext"]) ? $_GET["logtext"] : "Logtext"; - $machine_id_ss = isset($_GET["machine_id"]) ? $_GET["machine_id"] : "Machine id"; - $time_ss = isset($_GET["time"]) ? $_GET["time"] : "Date & time"; echo '