From 1fbc7a92c707ac384c061294015016f44b145940 Mon Sep 17 00:00:00 2001 From: jakani24 Date: Sat, 9 Mar 2024 15:39:13 +0100 Subject: [PATCH] Update export_log.php --- .../system/secure_zone/php/export_log.php | 129 +++++++----------- 1 file changed, 47 insertions(+), 82 deletions(-) diff --git a/src/server/cyberhex-code/system/secure_zone/php/export_log.php b/src/server/cyberhex-code/system/secure_zone/php/export_log.php index f4d6ca9..a508108 100644 --- a/src/server/cyberhex-code/system/secure_zone/php/export_log.php +++ b/src/server/cyberhex-code/system/secure_zone/php/export_log.php @@ -18,6 +18,14 @@ if ($perms[2] !== "1") { } else { $block = 0; } + +// Handle filter submission +$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"; + ?> @@ -25,107 +33,65 @@ if ($perms[2] !== "1") { + integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" + crossorigin="anonymous"> - Export Log + integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" + crossorigin="anonymous"> + View Log -
+
-

Export Log

+

View log

-

You can use filters before you export the log. The filter preview is below.

- Export log - + + Export + + connect_error) { - die("Connection failed: " . $conn->connect_error); - } - - $export_file_path = "/var/www/html/export/cyberhex_log_export.csv"; - - $filter_query = ""; - // Apply filters if present - if (isset($_GET["loglevel"])) { - $filter_query .= " AND loglevel LIKE '%" . $conn->real_escape_string($_GET["loglevel"]) . "%'"; - } - if (isset($_GET["logtext"])) { - $filter_query .= " AND logtext LIKE '%" . $conn->real_escape_string($_GET["logtext"]) . "%'"; - } - if (isset($_GET["machine_id"])) { - $filter_query .= " AND machine_id LIKE '%" . $conn->real_escape_string($_GET["machine_id"]) . "%'"; - } - if (isset($_GET["time"])) { - $filter_query .= " AND time LIKE '%" . $conn->real_escape_string($_GET["time"]) . "%'"; - } - - $export_file = fopen($export_file_path, 'w'); - if ($export_file === false) { - echo '
'; - } else { - fwrite($export_file, "id;loglevel;logtext;machine_id;time\r\n"); - - $sql = "SELECT * FROM log WHERE 1=1 $filter_query"; - - $result = $conn->query($sql); - - if ($result->num_rows > 0) { - while ($row = $result->fetch_assoc()) { - fwrite($export_file, "{$row['id']};{$row['loglevel']};{$row['logtext']};{$row['machine_id']};{$row['time']}\r\n"); - } - } - - fclose($export_file); - echo '
'; - } - - $conn->close(); - } - ?> - - 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(); @@ -133,23 +99,21 @@ if ($perms[2] !== "1") { echo ''; echo ''; echo ''; - echo ''; + echo ''; echo ''; echo ''; 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 ''; - echo ''; + echo ''; + echo ''; echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; echo ''; echo ''; @@ -160,6 +124,7 @@ if ($perms[2] !== "1") { echo ''; echo ''; echo ''; + echo ''; echo ''; } @@ -167,11 +132,11 @@ if ($perms[2] !== "1") { echo '
Entry idLoglevelLogtextMachine idTime & dateEntry idLoglevelLogtextMachine idTime & dateDelete entry
---
' . $row["logtext"] . '' . $row["machine_id"] . '' . $row["time"] . 'delete
'; $conn->close(); - // Display pagination links + // Display pagination links with filter query echo '';