diff --git a/log.php b/log.php index 97baf62b7e0b94eadb7e6910860f939b86401cbe..45c06200ae1a3d3819f3cbad8b6d970cae64f167 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();