contributte/reCAPTCHA – neodešle se formulář

Desttro
Člen | 126
+
0
-

Zdravím,
chci vás poprosit, hlědám kvalitní ošetření pro formuláře proti botům, líbí se mi reCAPTCHA V3, která může fungovat v invisible režimu. Doplněk contributte/reCAPTCHA by to měl umožnit. Stabilní verze nefungovala, proto jsem switchnul na dev ~3.3.0, která se správně inicializuje:

  • v konzoli prohlížeče nejsou žádné chyby
  • vpravo dole se ukáže ikona reCAPTCHA, po najetí text „protected by reCAPTCHA“

v configu mám extension zaregistrován, sitekey a secret také, i scripty podle návodu mám:

<script src="https://www.google.com/recaptcha/api.js?render=explicit"></script>
<script src="{$basePath}/assets/invisibleRecaptcha.min.js"></script>

Ve formuláři mám:

$form->addInvisibleReCaptcha('recaptcha')
            ->setMessage('Jste opravdu člověk?');

A ve zdrojáku se na konci formuláře vygenerovalo správně:

<div class="g-recaptcha" name="recaptcha" value="XXXXXXX" data-sitekey="XXXXX" data-size="invisible"></div><input type="hidden" name="_do" value="quoteForm-submit">

Když ale formulář odešlu, stránka se pouze refreshne, není zde žádný redirect a nic se nestane.
Když odstraním z formuláře:

$form->addInvisibleReCaptcha('recaptcha')
            ->setMessage('Jste opravdu člověk?');

tak vše funguje, jak má – redirect na děkovací stránku a odeslání emailu.

Dá se tohle nějak debuggovat? Nebo v čem by mohl být prosím problém? Nebo máte někdo nějaké lepší řešení, které je inteligentní, jako reCAPTCHA a není jej nutno vždy vyplnit, jen podle scoringu uživatele?

Děkuji moc za pomoc!

uestla
Backer | 793
+
+1
-

Máš povolené allow_url_fopen? Vypadá to, že se mu nedaří poslat request (https://github.com/…Provider.php#L102).

Desttro
Člen | 126
+
0
-

Tak opravdu to bylo tím, moc děkuji za pomoc!

uestla
Backer | 793
+
0
-

Rádo se stalo.

Ještě tam píšeš, že „se nic nestane“ – vykresluješ v šabloně chyby formuláře? Měla by se vypsat tvoje hláška „Jste opravdu člověk?“.

JonatanRek
Člen | 20
+
+3
-

Dobrý den potkal mně stejný problém a však allow_url_fopen povolen mám.
pokud formulář odešlu zobrazí se hláška definovaná pro chybový stav ověření.
předem dekuji za jakoukoliv radu

Editoval JonatanRek (29. 4. 2021 10:15)