From 40b4774f0d47ac5d75506ec668d51129b484ac2d Mon Sep 17 00:00:00 2001 From: Tom Bartelt Date: Tue, 22 Sep 2026 20:45:53 +0200 Subject: [PATCH] fix(kundencenter): SQL-Fatal beim Adresse speichern (leerer parent_id) - main_widget_menu_2: !empty statt isset, sonst 'parent_id in(10636,)' - add_address: exit nach dem Location-Header - get_this_url: leere Parameter nicht anhaengen --- core/website.class.php | 6 ++++-- modules/website_customercenter.php | 9 ++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/core/website.class.php b/core/website.class.php index a98a29e..8ccd7f4 100644 --- a/core/website.class.php +++ b/core/website.class.php @@ -155,10 +155,12 @@ class website { function main_widget_menu_2() { $structure_object = new Structure($this->base_object); $selected_ids = array(); - if (isset($_GET['menu_id'])) { + // 22.09.2026: !empty statt isset -- das Kundencenter postet auf "...&parent_id=" (leer), + // isset war dann wahr und get_all_tree() baute "parent_id in(10636,)" -> SQL-Fatal. + if (!empty($_GET['menu_id'])) { $selected_ids[] = $_GET['menu_id']; } - if (isset($_GET['parent_id'])) { + if (!empty($_GET['parent_id'])) { $selected_ids[] = $_GET['parent_id']; } $data = $structure_object->get_all_tree(5, $selected_ids, $this->base_object->customer_group->id); diff --git a/modules/website_customercenter.php b/modules/website_customercenter.php index 17952d7..f7f6f87 100644 --- a/modules/website_customercenter.php +++ b/modules/website_customercenter.php @@ -250,6 +250,8 @@ class website_customercenter { } header('location: ' . $_SERVER["HTTP_REFERER"]); + // 22.09.2026: nach dem Redirect nicht weiterrendern (lief sonst in die Widgets und den SQL-Fatal). + exit(); } private function edit_base_data($customer_id) { @@ -332,7 +334,12 @@ class website_customercenter { $base_url .= ':' . $_SERVER['SERVER_PORT']; } - return $base_url . '/index.php?menu_id=' . $_GET['menu_id'] . '&parent_id=' . $_GET['parent_id']; + // 22.09.2026: leere Parameter nicht anhaengen (Seite kommt per short_uri /Kundencenter/ ohne parent_id). + $url = $base_url . '/index.php?menu_id=' . (int) ($_GET['menu_id'] ?? 0); + if (!empty($_GET['parent_id'])) { + $url .= '&parent_id=' . (int) $_GET['parent_id']; + } + return $url; } private function get_invoice_pdf() {