Zum Hauptinhalt springen
Google reCAPTCHA stellt beim Laden eine Verbindung zu Google her und übermittelt dabei Daten des Besuchers. Deshalb soll es erst geladen werden, wenn der Besucher im Consent-Layer zugestimmt hat. Ein Formular ohne Captcha ist aber keine Lösung, es wäre sofort das Ziel automatisierter Einsendungen. Wer nicht zustimmt, bekommt deshalb dasselbe Formular mit der WEBSALE-Rechenaufgabe statt des Captchas von Google. Recapthadsgvo

Wie die Umschaltung funktioniert

Es gibt zwei Formularkonfigurationen, die sich nur im Captcha unterscheiden. Welche davon geladen wird, entscheidet eine einzige Klammerung im Template. Wegweiser: Integration eines INQUIRY-Formulars · AC- (AgreementCookies)
Preselection = unchecked ist nicht verhandelbar. Ein vorab angehaktes Kästchen ist keine Einwilligung, und damit wäre der ganze Aufwand auf dieser Seite vergeblich.
Füllen Sie Descr aus. Der Besucher soll entscheiden, und dafür muss er wissen, worüber. Im Beispiel der bisherigen Beschreibung bleibt das Feld leer. Referenz: Abschnitt AgreementCookies

Schritt 2: Die zweite Formularkonfiguration anlegen

Legen Sie im OSB-Dienst “Konfiguration” im Bereich “Formulare (Inquiry)” eine Kopie Ihrer Formularkonfiguration an, beispielsweise contact_ohne_recaptcha.config, und schalten Sie darin das Captcha von Google ab:
Zwei Konfigurationen bedeuten zwei Dateien, die auseinanderlaufen können. Jede Änderung am Formular, jedes neue Feld und jede neue Empfängeradresse muss in beide. Notieren Sie das an der Stelle, an der die Formulare gepflegt werden.

Schritt 3: Die passende Konfiguration einbinden

Auf dem Template des Kontaktformulars, beispielsweise tpl_contact.htm:
Referenz: AC-AgreementMadeForID() · WS-ExternInclude()

Schritt 4: Beide Captcha-Varianten im Formulartemplate

Im Template mit den Formularfeldern, beispielsweise inquiry_contact.htm:
Das Token darf erst beim Absenden geholt werden.Ein Token von reCAPTCHA v3 ist nur rund zwei Minuten gültig. Die bisherige Beschreibung holt es unmittelbar beim Laden der Seite. Wer das Formular in Ruhe ausfüllt, sendet dann ein abgelaufenes Token, und die Einsendung wird abgewiesen. Besonders lange Formulare und Besucher, die zwischendurch etwas nachschlagen, sind betroffen.Das Beispiel oben holt das Token deshalb erst im submit-Ereignis und sendet das Formular danach ab.
Die bisherige Beschreibung verwendet an dieser Stelle jQuery. Im Beispiel oben steht stattdessen document.querySelector, damit das Formular nicht von einer weiteren Bibliothek abhängt. Das Eingabefeld der Rechenaufgabe hat jetzt eine id, damit die Beschriftung darüber tatsächlich zum Feld gehört. Ohne id zeigt das for-Attribut ins Leere.
Die Fehlermarkierung gehört nicht als style-Attribut ins Template. Mit einer Klasse bleibt die Gestaltung im Stylesheet, und die Markierung lässt sich an einer Stelle ändern.

Grenzen der Lösung

Stimmt der Besucher erst nach dem Laden der Seite zu, wirkt die Umschaltung erst beim nächsten Aufruf. Wenn der Consent-Layer die Seite nach der Zustimmung ohnehin neu lädt, erledigt sich das von selbst. Andernfalls erwähnen Sie es im Layer. Die Rechenaufgabe ist kein gleichwertiger Ersatz, sondern eine einfachere Hürde. Rechnen Sie damit, dass über diesen Weg mehr automatisierte Einsendungen durchkommen, und prüfen Sie nach der Umstellung, ob das Aufkommen steigt. Die CAPTCHA--Tags und die Parameter des Abschnitts <Captcha> gehören zum Formularprogramm INQUIRY4 und sind in dessen eigener Beschreibung dokumentiert.

Verwandte Themen