diff --git a/api/v1/result/browser.quick.test.php b/api/v1/result/browser.quick.test.php index 25f1e45..e780979 100644 --- a/api/v1/result/browser.quick.test.php +++ b/api/v1/result/browser.quick.test.php @@ -36,21 +36,30 @@ function browser_quick_test_handle_request(): array } // --------------------------------------------------------------------- - // 2. User / Session ermitteln (robuster) + // 2. User / Session ermitteln – angepasst an dein Login // --------------------------------------------------------------------- $userId = null; $isLoggedIn = 0; - // Variante A: klassisch - if (!empty($_SESSION['user_id'])) { - $userId = (int)$_SESSION['user_id']; - } - // Variante B: User-Array in der Session (z.B. $_SESSION['user']['id']) - elseif (!empty($_SESSION['user']) && is_array($_SESSION['user']) && !empty($_SESSION['user']['id'])) { + // **Primär**: so wird der User in src/auth/login.php gesetzt: + // $_SESSION['user'] = ['id' => ..., ...] + if ( + isset($_SESSION['user']) && + is_array($_SESSION['user']) && + !empty($_SESSION['user']['id']) + ) { $userId = (int)$_SESSION['user']['id']; } - // Variante C: auth-Block (z.B. $_SESSION['auth']['user_id']) - elseif (!empty($_SESSION['auth']) && is_array($_SESSION['auth']) && !empty($_SESSION['auth']['user_id'])) { + // Fallback A: klassisch + elseif (!empty($_SESSION['user_id'])) { + $userId = (int)$_SESSION['user_id']; + } + // Fallback B: auth-Block (z.B. $_SESSION['auth']['user_id']) + elseif ( + isset($_SESSION['auth']) && + is_array($_SESSION['auth']) && + !empty($_SESSION['auth']['user_id']) + ) { $userId = (int)$_SESSION['auth']['user_id']; } @@ -180,6 +189,11 @@ function browser_quick_test_handle_request(): array $id = (int)$pdo->lastInsertId(); + // Optionales Debug-Logging, falls trotz Login kein user_id ankam + if ($isLoggedIn === 0 && !empty($_SESSION['user'])) { + error_log('[usbcheck] browser.quick.test: SESSION[user] vorhanden, aber user_id blieb leer: ' . json_encode($_SESSION['user'])); + } + return [ 'ok' => true, 'id' => $id, @@ -190,8 +204,6 @@ function browser_quick_test_handle_request(): array // Fehler ins Error-Log schreiben (nur Server-seitig sichtbar) error_log('[usbcheck] web_quicktests insert failed: ' . $e->getMessage()); - // Auf STAGING kannst du dir die Detailmeldung im JSON anzeigen lassen, - // in PROD würdest du das "debug" eher weglassen oder per env-Flag steuern. return [ 'ok' => false, 'error' => 'DB error',