From fbe6f4ce5a089c2094eaf60e77e5994f3b8c8cdb Mon Sep 17 00:00:00 2001 From: Clemens Creutzburg Date: Thu, 3 Sep 2026 12:43:43 +0200 Subject: [PATCH] Loeschen ohne Mailversand reparieren, Fehlertext praezisieren Die Abfrage in aktion=10 stammte noch aus der Zeit der user-Tabelle und selektierte p.mail, p.jahrgang sowie a.timeid. Keine dieser Spalten existiert: persons fuehrt email und geburtstag, anfragen hat kein timeid. Die Abfrage warf damit eine PDOException, und da der Block kein try/catch hat, brach das Skript vor dem UPDATE ab - "Anforderung loeschen (ohne Mail)" war komplett wirkungslos. Spaltennamen korrigiert und die uebrig gebliebene Debug-Ausgabe von timeid entfernt, die als einzige Stelle den Wert genutzt hat. Ein Scan aller persons-Aliasse gegen das Schema zeigt keine weiteren Fundstellen. Der Fehlertext beim fehlgeschlagenen Mailversand in aktion=3 behauptete, es sei nichts gespeichert worden. Tatsaechlich laeuft das UPDATE vorher. Die Meldung benennt jetzt den echten Zustand und bittet darum, den Vorgang erneut auszufuehren. Co-Authored-By: Claude Opus 5 --- admin/anfragen.php | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/admin/anfragen.php b/admin/anfragen.php index 31b01c8..c7fbc8e 100644 --- a/admin/anfragen.php +++ b/admin/anfragen.php @@ -584,7 +584,9 @@ if(!check_worker()){ } catch (Throwable $e) { echo "

Fehler

"; - echo "E-Mailversand fehlgeschlagen – es wurde nichts gespeichert.
"; + echo "Der E-Mailversand ist fehlgeschlagen.
"; + echo "Die Anfrage wurde bereits als beantwortet gespeichert, der Patient hat aber keine Benachrichtigung erhalten.
"; + echo "Bitte den Vorgang erneut ausführen.
"; } }else if (($_POST["aktion"] ?? '') == "4") { @@ -956,14 +958,13 @@ if(!check_worker()){ SELECT a.anfrageid, a.checked, - a.timeid, a.requester_person_id, p.vorname, p.nachname, - p.mail, + p.email, p.tele, - p.jahrgang + p.geburtstag FROM anfragen a INNER JOIN persons p ON p.person_id = a.requester_person_id WHERE a.anfrageid = :anfrageid @@ -978,19 +979,15 @@ if(!check_worker()){ $requesterPersonId = (int)$row["requester_person_id"]; $checked = (int)$row["checked"]; - $timeid = $row["timeid"]; // kann NULL sein $vorname = $row["vorname"]; $nachname = $row["nachname"]; - $mail = $row["mail"]; + $mail = $row["email"]; $tel = $row["tele"]; - $jahrgang = $row["jahrgang"]; + $jahrgang = $row["geburtstag"]; $userausgabe = $vorname . " " . $nachname; - // Debug wie vorher (falls du es noch brauchst) - echo htmlspecialchars((string)$timeid, ENT_QUOTES, 'UTF-8'); - // 2) Anfrage “löschen/abschließen” (ohne Mail) $stmt = $pdo->prepare(" UPDATE anfragen