From dd424ce0f46e61db71a638eb24ff377f305f6093 Mon Sep 17 00:00:00 2001
From: developer43 <support@d-logic.rs>
Date: Tue, 28 May 2024 17:25:32 +0200
Subject: [PATCH] Session ID logic added

---
 log.php | 63 ++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 40 insertions(+), 23 deletions(-)

diff --git a/log.php b/log.php
index 97baf62..45c0620 100644
--- a/log.php
+++ b/log.php
@@ -13,7 +13,6 @@ $password = $db['password'];
 $dbname = $db['dbname'];
 date_default_timezone_set('UTC');
 
-
 if (isset($_GET["osn"])) {
 
     read_log($_GET["osn"]);
@@ -78,6 +77,7 @@ function echo_params($data)
     $available_access_rights = array();
     $access_rights_list = array();
     $access_rights_output = null;
+    $session_id_event_found = false;
 
     $calculated_max_id = 0;
     $current_last_id = 0;
@@ -124,7 +124,33 @@ function echo_params($data)
         die("Connection failed: " . mysqli_connect_error());
     }
 
-    if ($session_id == "" || $session_id == null) {
+    if($session_id != "" && $session_id != null)
+    {
+
+    $sql = "SELECT id FROM events WHERE osn='$osn' AND session_id='$session_id' ORDER BY id DESC LIMIT 1";
+    $result = $conn->query($sql);
+
+    if ($result->num_rows > 0) {
+        while ($row = $result->fetch_assoc()) {
+            $last_log_id = $row["id"];
+            $session_id_event_found = true;
+            break;
+        }
+    }
+
+    $sql = "SELECT id FROM events WHERE osn='$osn' AND session_id='$session_id' AND rte=1 ORDER BY id ASC LIMIT 1";
+    $result = $conn->query($sql);
+
+    if ($result->num_rows > 0) {
+        while ($row = $result->fetch_assoc()) {
+            $last_rte_id = $row["id"];
+            $session_id_event_found = true;
+            break;
+        }
+    }
+    }
+
+    if ($session_id_event_found == false) {
 
         $sql = "SELECT temp_tbl.id AS id from (SELECT id, rte FROM events WHERE osn='$osn' GROUP BY id HAVING COUNT(id) = (SELECT MAX(tbl.cnt_id) AS maximum FROM (SELECT COUNT(id) AS cnt_id  FROM events WHERE osn='$osn' GROUP BY id) AS tbl)) AS temp_tbl WHERE temp_tbl.rte=0 ORDER BY temp_tbl.id DESC LIMIT 1";
         $result = $conn->query($sql);
@@ -159,26 +185,6 @@ function echo_params($data)
         if ($calculated_max_id == null) {
             $calculated_max_id = 0;
         }
-    } else {
-        $sql = "SELECT id FROM events WHERE osn='$osn' AND session_id='$session_id' ORDER BY id DESC LIMIT 1";
-        $result = $conn->query($sql);
-
-        if ($result->num_rows > 0) {
-            while ($row = $result->fetch_assoc()) {
-                $last_log_id = $row["id"];
-                break;
-            }
-        }
-
-        $sql = "SELECT id FROM events WHERE osn='$osn' AND session_id='$session_id' AND rte=1 ORDER BY id ASC LIMIT 1";
-        $result = $conn->query($sql);
-
-        if ($result->num_rows > 0) {
-            while ($row = $result->fetch_assoc()) {
-                $last_rte_id = $row["id"];
-                break;
-            }
-        }
     }
 
 
@@ -377,7 +383,7 @@ function echo_params($data)
     } else {
     }
 
-    if ($session_id == "" || $session_id == null) {
+    if ($session_id_event_found == false) {
 
         $sql = "UPDATE readers SET max_id='$calculated_max_id',last_id='$last_log_id' WHERE osn='$osn'";
 
@@ -406,6 +412,17 @@ function echo_params($data)
                 }
             }
         }
+    } else {
+        $sql = "UPDATE readers SET max_id='$last_log_id',last_id='$last_log_id' WHERE osn='$osn'";
+
+        if (mysqli_query($conn, $sql)) {
+        } else {
+        }
+        $sql = "UPDATE readers SET valid_id='LAST' WHERE osn='$osn'";
+
+        if (mysqli_query($conn, $sql)) {
+        } else {
+        }
     }
 
     $conn->close();
-- 
GitLab