From bda785662d04d14c6609207d5d618756334af336 Mon Sep 17 00:00:00 2001 From: JensFalk Date: Mon, 21 Sep 2026 20:27:23 +0200 Subject: [PATCH] v1.2.0: Umbenennung, zweizeiliger Erfolgstext, Umlaute --- .../src/Handler/ValidationHandler.php | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/fp_altcha_spamschutz/src/Handler/ValidationHandler.php b/fp_altcha_spamschutz/src/Handler/ValidationHandler.php index ca14612..f4bd4c0 100644 --- a/fp_altcha_spamschutz/src/Handler/ValidationHandler.php +++ b/fp_altcha_spamschutz/src/Handler/ValidationHandler.php @@ -7,25 +7,25 @@ namespace Plugin\fp_altcha_spamschutz\src\Handler; use Plugin\fp_altcha_spamschutz\src\Service\AltchaService; /** - * Prueft die ALTCHA-Loesung bei Registrierung und Newsletter-Anmeldung. + * Prüft die ALTCHA-Lösung bei Registrierung und Newsletter-Anmeldung. * * Registrierung: nutzt den dokumentierten Hook HOOK_REGISTRIEREN_PAGE_REGISTRIEREN_PLAUSI (41), - * der genau fuer diesen Zweck (Plausibilitaetspruefung nach Formularabsendung) vorgesehen ist. - * Bei fehlender/ungueltiger Pruefung wird ein Eintrag zu "fehlendeAngaben" hinzugefuegt -- das ist - * derselbe Mechanismus, den JTL-Shop fuer "Pflichtfeld nicht ausgefuellt" nutzt, der Kunde bekommt + * der genau für diesen Zweck (Plausibilitätsprüfung nach Formularabsendung) vorgesehen ist. + * Bei fehlender/ungültiger Prüfung wird ein Eintrag zu "fehlendeAngaben" hinzugefügt -- das ist + * derselbe Mechanismus, den JTL-Shop für "Pflichtfeld nicht ausgefüllt" nutzt, der Kunde bekommt * also die normale, vertraute Fehlermeldung des Shops. * * Newsletter: die Dokumentation zum passenden Hook (HOOK_NEWSLETTER_PAGE_EMPFAENGEREINTRAGEN) ist - * nicht eindeutig genug, um sich allein darauf zu verlassen. Deshalb wird zusaetzlich ganz frueh - * (direkt in Bootstrap::boot(), vor jeder Shop-Verarbeitung) geprueft: schlaegt die Pruefung fehl, + * nicht eindeutig genug, um sich allein darauf zu verlassen. Deshalb wird zusätzlich ganz früh + * (direkt in Bootstrap::boot(), vor jeder Shop-Verarbeitung) geprüft: schlägt die Prüfung fehl, * wird das POST-Feld "abonnieren" entfernt, sodass JTL-Shop die Anmeldung erst gar nicht verarbeitet. - * Der Hook-Handler unten ist eine zusaetzliche Absicherung ("defense in depth"), falls dieser fruehe + * Der Hook-Handler unten ist eine zusätzliche Absicherung ("defense in depth"), falls dieser frühe * Filter aus irgendeinem Grund nicht greift. * - * Kontaktformular: der dafuer vorgesehene Hook (HOOK_KONTAKT_PAGE_PLAUSI) ist offiziell nicht - * dokumentiert (keine Angaben zu den uebergebenen Parametern). Um sich nicht auf ungeprueftes - * Verhalten zu verlassen, wird hier bewusst derselbe fruehe, hook-unabhaengige Ansatz wie bei der - * Newsletter-Anmeldung verwendet: direkte Pruefung von $_POST, noch bevor JTL-Shop das Formular + * Kontaktformular: der dafür vorgesehene Hook (HOOK_KONTAKT_PAGE_PLAUSI) ist offiziell nicht + * dokumentiert (keine Angaben zu den übergebenen Parametern). Um sich nicht auf ungeprüftes + * Verhalten zu verlassen, wird hier bewusst derselbe frühe, hook-unabhängige Ansatz wie bei der + * Newsletter-Anmeldung verwendet: direkte Prüfung von $_POST, noch bevor JTL-Shop das Formular * verarbeitet (siehe guardContactSubmission()). */ class ValidationHandler @@ -52,26 +52,26 @@ class ValidationHandler } if (isset($args['fehlendeAngaben']) && \is_array($args['fehlendeAngaben'])) { - $args['fehlendeAngaben'][] = 'Sicherheitspruefung'; + $args['fehlendeAngaben'][] = 'Sicherheitsprüfung'; } if (\array_key_exists('nReturnValue', $args)) { $args['nReturnValue'] = 0; } } catch (\Throwable $e) { - // Bewusste Entscheidung: bei einem unerwarteten Fehler (z. B. Plugin nicht vollstaendig + // Bewusste Entscheidung: bei einem unerwarteten Fehler (z. B. Plugin nicht vollständig // konfiguriert) lieber die Registrierung durchlassen, als die komplette Registrierungs- - // seite fuer echte Kunden zu blockieren. Ein Bot mehr ist besser als ein Shop, bei dem + // seite für echte Kunden zu blockieren. Ein Bot mehr ist besser als ein Shop, bei dem // sich niemand mehr registrieren kann. if ($this->altchaService->isDebug()) { - error_log('[fp_altcha_spamschutz] Fehler bei Registrierungspruefung: ' . $e->getMessage()); + error_log('[fp_altcha_spamschutz] Fehler bei Registrierungsprüfung: ' . $e->getMessage()); } } } /** - * Fruehe Pruefung fuer die Newsletter-Anmeldung. Wird direkt aus Bootstrap::boot() aufgerufen, - * nicht ueber einen Hook, damit sie garantiert vor der Verarbeitung durch newsletter.php laeuft. + * Frühe Prüfung für die Newsletter-Anmeldung. Wird direkt aus Bootstrap::boot() aufgerufen, + * nicht über einen Hook, damit sie garantiert vor der Verarbeitung durch newsletter.php läuft. */ public function guardNewsletterSubmission(): void { @@ -96,18 +96,18 @@ class ValidationHandler unset($_POST['abonnieren']); $_SESSION['fp_altcha_newsletter_error'] = true; } catch (\Throwable $e) { - // Wird direkt in Bootstrap::boot() aufgerufen (nicht ueber einen Hook) -- ein + // Wird direkt in Bootstrap::boot() aufgerufen (nicht über einen Hook) -- ein // Fehler hier darf auf keinen Fall den kompletten Seitenaufbau verhindern. if ($this->altchaService->isDebug()) { - error_log('[fp_altcha_spamschutz] Fehler bei Newsletter-Fruehpruefung: ' . $e->getMessage()); + error_log('[fp_altcha_spamschutz] Fehler bei Newsletter-Frühprüfung: ' . $e->getMessage()); } } } /** - * Fruehe Pruefung fuer das Kontaktformular. Wird direkt aus Bootstrap::boot() aufgerufen, nach + * Frühe Prüfung für das Kontaktformular. Wird direkt aus Bootstrap::boot() aufgerufen, nach * demselben Muster wie guardNewsletterSubmission(). Das Formular sendet ein verstecktes Feld - * "kontakt" mit dem Wert "1" mit, das als zuverlaessiges Erkennungsmerkmal dient. + * "kontakt" mit dem Wert "1" mit, das als zuverlässiges Erkennungsmerkmal dient. */ public function guardContactSubmission(): void { @@ -127,23 +127,23 @@ class ValidationHandler return; } - // Pflichtfeld leeren, damit JTL-Shops eigene Pruefung ("Pflichtfeld nicht ausgefuellt") + // Pflichtfeld leeren, damit JTL-Shops eigene Prüfung ("Pflichtfeld nicht ausgefüllt") // die Anfrage abweist -- der Besucher bekommt die normale, vertraute Fehlermeldung. unset($_POST['nachricht']); } catch (\Throwable $e) { - // Wird direkt in Bootstrap::boot() aufgerufen (nicht ueber einen Hook) -- ein + // Wird direkt in Bootstrap::boot() aufgerufen (nicht über einen Hook) -- ein // Fehler hier darf auf keinen Fall den kompletten Seitenaufbau verhindern. if ($this->altchaService->isDebug()) { - error_log('[fp_altcha_spamschutz] Fehler bei Kontakt-Fruehpruefung: ' . $e->getMessage()); + error_log('[fp_altcha_spamschutz] Fehler bei Kontakt-Frühprüfung: ' . $e->getMessage()); } } } /** - * Zusaetzliche Absicherung ueber HOOK_NEWSLETTER_PAGE_EMPFAENGEREINTRAGEN, falls die fruehe - * Pruefung in guardNewsletterSubmission() aus irgendeinem Grund nicht gegriffen hat. + * Zusätzliche Absicherung über HOOK_NEWSLETTER_PAGE_EMPFAENGEREINTRAGEN, falls die frühe + * Prüfung in guardNewsletterSubmission() aus irgendeinem Grund nicht gegriffen hat. * - * @param array $args Enthaelt 'oNewsletterEmpfaenger' (stdClass, per Referenz). + * @param array $args Enthält 'oNewsletterEmpfaenger' (stdClass, per Referenz). */ public function checkNewsletterRecipient(array $args): void { @@ -153,8 +153,8 @@ class ValidationHandler } if (!empty($_SESSION['fp_altcha_newsletter_error'])) { - // Bereits in guardNewsletterSubmission() als ungueltig erkannt: Empfaenger-E-Mail - // leeren, damit JTL-Shops eigene Pflichtfeld-Pruefung den Insert verhindert. + // Bereits in guardNewsletterSubmission() als ungültig erkannt: Empfänger-E-Mail + // leeren, damit JTL-Shops eigene Pflichtfeld-Prüfung den Insert verhindert. if (isset($args['oNewsletterEmpfaenger']) && \is_object($args['oNewsletterEmpfaenger'])) { $args['oNewsletterEmpfaenger']->cEmail = ''; }