From 7b8fc68a48634b2226759ed39867adf250f2108c Mon Sep 17 00:00:00 2001 From: Gemini Agent Date: Mon, 11 May 2026 16:25:03 +0000 Subject: [PATCH] Fix image 404s and drag-drop save errors - Set volume to external: true in docker-compose.yml to attach to original user uploads volume. - Fixed PHP Fatal error by preventing literal pass-by-reference in bind_param. - Made JSON null parsing for carrier_id more robust. - Added error logging to api_error.log for future debugging. --- docker-compose.yml | 1 + src/api_packing_list_handler.php | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 39a969b..421c262 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,3 +12,4 @@ services: volumes: packliste_uploads: + external: true diff --git a/src/api_packing_list_handler.php b/src/api_packing_list_handler.php index 8758a9a..22017e9 100644 --- a/src/api_packing_list_handler.php +++ b/src/api_packing_list_handler.php @@ -75,7 +75,7 @@ try { foreach ($items_from_frontend as $index => $item_data) { $pli_id_frontend = $item_data['pli_id']; $article_id = intval($item_data['article_id']); - $carrier_id = ($item_data['carrier_id'] === 'null') ? NULL : intval($item_data['carrier_id']); + $carrier_id = ($item_data['carrier_id'] === 'null' || $item_data['carrier_id'] === null) ? NULL : intval($item_data['carrier_id']); // New fields $backpack_id = !empty($item_data['backpack_id']) ? intval($item_data['backpack_id']) : NULL; @@ -129,8 +129,11 @@ try { foreach ($child_items as $child) { $temp_index++; // Child items are normal items - $stmt_insert->bind_param("iiiiiiiis", $packing_list_id, $child['id'], 1, $carrier_id, $temp_index, $new_db_id, $null_val, $null_val, $null_val); - $null_val = NULL; + $null_val1 = NULL; + $null_val2 = NULL; + $null_val3 = NULL; + $qty_one = 1; + $stmt_insert->bind_param("iiiiiiiis", $packing_list_id, $child['id'], $qty_one, $carrier_id, $temp_index, $new_db_id, $null_val1, $null_val2, $null_val3); if(!$stmt_insert->execute()) throw new Exception("Fehler beim Einfügen von Kind-Artikel " . $child['id']); } } @@ -250,6 +253,7 @@ try { if ($conn) { try { $conn->rollback(); } catch (Throwable $t) {} } + file_put_contents(__DIR__ . '/api_error.log', date('Y-m-d H:i:s') . ' - ERROR: ' . $e->getMessage() . "\n" . $e->getTraceAsString() . "\n\n", FILE_APPEND); http_response_code(500); echo json_encode(['error' => $e->getMessage()]); } finally {