From dd8ce885563cdb4afac5ddd6ef4b87be9fdffec2 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Mon, 16 Mar 2026 22:04:57 +0100 Subject: [PATCH] Implement form validation and error handling for email sending in Register class --- include/register.php | 10 ++++++++-- include/renderer.php | 7 ++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/include/register.php b/include/register.php index 0bf047a..6c6e905 100644 --- a/include/register.php +++ b/include/register.php @@ -15,9 +15,15 @@ class Register extends Renderer { protected string $templateName = 'renderer'; protected function formAction(): void { + if (!$this->formCheckFields()) { + // Bei Validierungsfehlern: nichts speichern, keine Mail, Fehler im Formular anzeigen + return; + } $this->writeToDb(); $this->sendEmail(); - $this->templateName = 'register_successful'; + if (count($this->errors) === 0) { + $this->templateName = 'register_successful'; + } } protected function formCheckFields(): bool { @@ -41,7 +47,7 @@ class Register extends Renderer { if (filter_input(INPUT_POST, 'accept', FILTER_SANITIZE_NUMBER_INT) !== '1') { $this->errors['accept'] = 'Sie müssen der Speicherung Ihrer Daten zustimmen.'; } - return (count($errors) === 0); + return (count($this->errors) === 0); } protected function writeToDb(): void { diff --git a/include/renderer.php b/include/renderer.php index 362117c..fe8bed5 100644 --- a/include/renderer.php +++ b/include/renderer.php @@ -461,7 +461,12 @@ class Renderer { $mail->addStringAttachment($attachment['content'], $fileName, 'base64', $attachment['type']); } - $mail->send(); + try { + $mail->send(); + } catch (Exception $e) { + error_log('Mailversand fehlgeschlagen: ' . $e->getMessage()); + $this->errors[] = 'Die Bestätigungs-Email konnte nicht versendet werden. Bitte versuchen Sie es später erneut oder kontaktieren Sie uns direkt.'; + } } protected function connectToImap($folder = ''): bool {