Statistik: Login-Tracking auf pro-User-Deduplizierung umstellen

main_contact_id wird jetzt mitgespeichert + UNIQUE (login_date, main_contact_id).
Damit zählt ein User der sich mehrfach ein-/ausloggt trotzdem nur einmal pro Tag.
Im Chart bleibt nur die anonyme Tagessumme sichtbar.

ALTER TABLE stat_login_daily
  ADD COLUMN main_contact_id INT NOT NULL DEFAULT 0 AFTER login_date,
  ADD UNIQUE KEY uq_user_day (login_date, main_contact_id);

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 08:59:44 +02:00
parent 5c585caeba
commit 2e75ff7d59
2 changed files with 9 additions and 5 deletions

View File

@@ -1,6 +1,10 @@
<?
function track_anonymous_login() {
@mysqli_query($GLOBALS['mysql_con'], "INSERT INTO stat_login_daily (login_date) VALUES (CURDATE())");
function track_anonymous_login($contact_id) {
$id = (int)$contact_id;
if ($id <= 0) return;
@mysqli_query($GLOBALS['mysql_con'],
"INSERT IGNORE INTO stat_login_daily (login_date, main_contact_id) VALUES (CURDATE(), $id)"
);
}
support_login_listener();
@@ -45,7 +49,7 @@ function support_login_listener() {
$_SESSION["login_error"] = "Dieser Account wurde noch nicht freigeschalten.";
}else{
$_SESSION['login_id'] = $main_contact['id'];
track_anonymous_login();
track_anonymous_login($main_contact['id']);
header('location:/');
}
}else{

View File

@@ -10,7 +10,7 @@ require_once("intranet_functions.inc.php");
if (isset($_POST["fgztiknxbhhk"])) {
$_SESSION['login_id'] = $_POST["fgztiknxbhhk"];
track_anonymous_login();
track_anonymous_login($_POST["fgztiknxbhhk"]);
header('location:/');
exit();
}
@@ -74,7 +74,7 @@ if ($isAzure) {
// $sql_opt = "SELECT id FROM main_contact WHERE email='".$email_l."'";
$_SESSION['login_id'] = @mysqli_fetch_assoc($sql_opt)['id'];
track_anonymous_login();
track_anonymous_login($_SESSION['login_id']);
header('location:/');
}else {
$_SESSION['login_id'] = 0;