-
You can use filters before you export the log. The filter preview is below.
-
Export log
-
- connect_error) {
- die("Connection failed: " . $conn->connect_error);
- }
- //list out the log entrys and add them to a .csv file.
- //get num of entrys
- $sql = "SELECT count(*) AS log_count FROM log";
- $stmt = $conn->prepare($sql);
- // Execute the statement
- $stmt->execute();
- // Get the result
- $result = $stmt->get_result();
- $row = $result->fetch_assoc();
- $num_of_log_entrys=$row["log_count"];
- $stmt->close();
- $conn->close();
- //now we got the ammount of netrys, write them to file
- $conn = new mysqli($DB_SERVERNAME, $DB_USERNAME, $DB_PASSWORD, $DB_DATABASE);
- if ($conn->connect_error) {
- die("Connection failed: " . $conn->connect_error);
- }
- $last_id=-1;
- $export_file = fopen("/var/www/html/export/cyberhex_log_export.csv", 'w');
- if($export_file===null){
- echo '
- Error creating export file.
-
';
- }else{
- fwrite($export_file,"id;loglevel;logtext;machine_id;time\r\n");
- while($num_of_log_entrys!=0){
- $sql = "SELECT * FROM log where id > $last_id";
- $stmt = $conn->prepare($sql);
- // Execute the statement
- $stmt->execute();
- // Get the result
- $result = $stmt->get_result();
- $row = $result->fetch_assoc();
- $last_id=$row["id"];
- $loglevel=$row["loglevel"];
- $logtext=$row["logtext"];
- $machine_id=$row["machine_id"];
- $time=$row["time"];
- $show=true;
- //evaluate filter, decide if entry should be shown or not
- if(isset($_GET["loglevel"]) && $_GET["loglevel"]!==""){
- if(stripos($loglevel,$_GET["loglevel"])===false){
- $show=false;
- }
- }if(isset($_GET["logtext"]) && $_GET["logtext"]!==""){
- if(stripos($logtext,$_GET["logtext"])===false){
- $show=false;
- }
- }if(isset($_GET["machine_id"]) && $_GET["machine_id"]!==""){
- if(stripos($machine_id,$_GET["machine_id"])===false){
- $show=false;
- }
- }if(isset($_GET["time"]) && $_GET["time"]!==""){
- if(stripos($time,$_GET["time"])===false){
- $show=false;
- }
- }
- if($show==true){
- fwrite($export_file,$last_id.";");
- fwrite($export_file,$loglevel.";");
- fwrite($export_file,$logtext.";");
- fwrite($export_file,$machine_id.";");
- fwrite($export_file,$time."\r\n");
- }
- $stmt->close();
- $num_of_log_entrys--;
- }
- $conn->close();
- fclose($export_file);
- echo '
';
- }
- }
-
- //get count of log entrys
- // Create a connection
- $conn = new mysqli($DB_SERVERNAME, $DB_USERNAME, $DB_PASSWORD, $DB_DATABASE);
+
+
+
+
+
+
+
You can use filters before you export the log. The filter preview is below.
+
Export log
+
+ connect_error) {
+ die("Connection failed: " . $conn->connect_error);
+ }
- // Check the connection
- if ($conn->connect_error) {
- die("Connection failed: " . $conn->connect_error);
- }
- $sql = "SELECT count(*) AS log_count FROM log";
- $stmt = $conn->prepare($sql);
- // Execute the statement
- $stmt->execute();
- // Get the result
- $result = $stmt->get_result();
- $row = $result->fetch_assoc();
- $num_of_log_entrys=$row["log_count"];
- $stmt->close();
- $conn->close();
-
- //list out log => id, loglevel, logtext, machine_id
- // Create a connection
- $conn = new mysqli($DB_SERVERNAME, $DB_USERNAME, $DB_PASSWORD, $DB_DATABASE);
+ $export_file_path = "/var/www/html/export/cyberhex_log_export.csv";
- // Check the connection
- if ($conn->connect_error) {
- die("Connection failed: " . $conn->connect_error);
- }
- $last_id=-1;
- //create the table header
- echo('
');
- echo('');
- echo('');
- echo('| Entry id | Loglevel | Logtext | Machine id | Time & date | ');
- echo('
');
- echo('');
- echo('');
-
- //filter options => if user allready applied filter we preview it in the form
- if(isset($_GET["loglevel"]))
- $loglevel_ss=$_GET["loglevel"]; //put the loglevel search string to that and afterwards show it in the filter optionss. so a user sees what he has filtered for
- else
- $loglevel_ss="Loglevel";
-
- if(isset($_GET["logtext"]))
- $logtext_ss=$_GET["logtext"];
- else
- $logtext_ss="Logtext";
-
- if(isset($_GET["machine_id"]))
- $machine_id_ss=$_GET["machine_id"];
- else
- $machine_id_ss="Machine id";
-
- if(isset($_GET["time"]))
- $time_ss=$_GET["time"];
- else
- $time_ss="Date & time";
- echo('');
- echo('');
- echo('
');
-
- while($num_of_log_entrys!=0){
- $sql = "SELECT * FROM log where id > $last_id";
- $stmt = $conn->prepare($sql);
- // Execute the statement
- $stmt->execute();
- // Get the result
- $result = $stmt->get_result();
- $row = $result->fetch_assoc();
- $last_id=$row["id"];
- $loglevel=$row["loglevel"];
- $logtext=$row["logtext"];
- $machine_id=$row["machine_id"];
- $time=$row["time"];
- $show=true;
- //evaluate filter, decide if entry should be shown or not
- if(isset($_GET["loglevel"]) && $_GET["loglevel"]!==""){
- if(stripos($loglevel,$_GET["loglevel"])===false){
- $show=false;
- }
- }if(isset($_GET["logtext"]) && $_GET["logtext"]!==""){
- if(stripos($logtext,$_GET["logtext"])===false){
- $show=false;
- }
- }if(isset($_GET["machine_id"]) && $_GET["machine_id"]!==""){
- if(stripos($machine_id,$_GET["machine_id"])===false){
- $show=false;
- }
- }if(isset($_GET["time"]) && $_GET["time"]!==""){
- if(stripos($time,$_GET["time"])===false){
- $show=false;
- }
- }
- if($show==true){
- echo('');
- echo('| '.$last_id.' | ');
- echo(''.$loglevel.' | ');
- echo(''.$logtext.' | ');
- echo(''.$machine_id.' | ');
- echo(''.$time.' | ');
- echo('
');
- }
- $stmt->close();
- $num_of_log_entrys--;
- }
- echo('');
- echo('
');
- $conn->close();
- ?>
+ $filter_query = "";
+ // Apply filters if present
+ if (isset($_GET["loglevel"])) {
+ $filter_query .= "&loglevel=" . urlencode($_GET["loglevel"]);
+ }
+ if (isset($_GET["logtext"])) {
+ $filter_query .= "&logtext=" . urlencode($_GET["logtext"]);
+ }
+ if (isset($_GET["machine_id"])) {
+ $filter_query .= "&machine_id=" . urlencode($_GET["machine_id"]);
+ }
+ if (isset($_GET["time"])) {
+ $filter_query .= "&time=" . urlencode($_GET["time"]);
+ }
+
+ $export_file = fopen($export_file_path, 'w');
+ if ($export_file === false) {
+ echo '
+ Error creating export file.
+
';
+ } else {
+ fwrite($export_file, "id;loglevel;logtext;machine_id;time\r\n");
+
+ $sql = "SELECT * FROM log";
+
+ // Apply filters if present
+ if (!empty($filter_query)) {
+ $sql .= " WHERE 1=1";
+ parse_str(substr($filter_query, 1), $filter_array);
+ foreach ($filter_array as $key => $value) {
+ $sql .= " AND $key LIKE '%" . $conn->real_escape_string($value) . "%'";
+ }
+ }
+
+ $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();
+ }
+
+ // Display log entries with filters
+ include "view_log.php";
+ ?>
+
-