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 <noreply@anthropic.com>
This commit is contained in:
2026-09-03 12:43:43 +02:00
co-authored by Claude Opus 5
parent 00b7811446
commit fbe6f4ce5a
+7 -10
View File
@@ -584,7 +584,9 @@ if(!check_worker()){
} catch (Throwable $e) { } catch (Throwable $e) {
echo "<h3>Fehler</h3>"; echo "<h3>Fehler</h3>";
echo "E-Mailversand fehlgeschlagen es wurde nichts gespeichert.<br>"; echo "Der E-Mailversand ist fehlgeschlagen.<br>";
echo "Die Anfrage wurde bereits als beantwortet gespeichert, der Patient hat aber keine Benachrichtigung erhalten.<br>";
echo "Bitte den Vorgang erneut ausf&uuml;hren.<br>";
} }
}else if (($_POST["aktion"] ?? '') == "4") { }else if (($_POST["aktion"] ?? '') == "4") {
@@ -956,14 +958,13 @@ if(!check_worker()){
SELECT SELECT
a.anfrageid, a.anfrageid,
a.checked, a.checked,
a.timeid,
a.requester_person_id, a.requester_person_id,
p.vorname, p.vorname,
p.nachname, p.nachname,
p.mail, p.email,
p.tele, p.tele,
p.jahrgang p.geburtstag
FROM anfragen a FROM anfragen a
INNER JOIN persons p ON p.person_id = a.requester_person_id INNER JOIN persons p ON p.person_id = a.requester_person_id
WHERE a.anfrageid = :anfrageid WHERE a.anfrageid = :anfrageid
@@ -978,19 +979,15 @@ if(!check_worker()){
$requesterPersonId = (int)$row["requester_person_id"]; $requesterPersonId = (int)$row["requester_person_id"];
$checked = (int)$row["checked"]; $checked = (int)$row["checked"];
$timeid = $row["timeid"]; // kann NULL sein
$vorname = $row["vorname"]; $vorname = $row["vorname"];
$nachname = $row["nachname"]; $nachname = $row["nachname"];
$mail = $row["mail"]; $mail = $row["email"];
$tel = $row["tele"]; $tel = $row["tele"];
$jahrgang = $row["jahrgang"]; $jahrgang = $row["geburtstag"];
$userausgabe = $vorname . " " . $nachname; $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) // 2) Anfrage “löschen/abschließen” (ohne Mail)
$stmt = $pdo->prepare(" $stmt = $pdo->prepare("
UPDATE anfragen UPDATE anfragen