This commit is contained in:
2025-12-01 00:53:18 +01:00
parent 48aab5c033
commit d5b902c049

View File

@@ -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',