Contributte/reCaptcha – nenačte se, způsobuje error
- MikKuba
- Člen | 88
Ahoj,
Nainstaloval jsem balíček contributte/recaptcha a nastavil.
PHP 8.2, contributte/recaptcha verze 4.0.2
Podle dokumentace, mám do configu přidáno:
recaptcha:
secretKey: 'xxxxx'
siteKey: 'xxxx'
extensions:
# Recaptcha
recaptcha: Contributte\ReCaptcha\DI\ReCaptchaExtension
nalinkoval jsem si JS:
<script src="/js/jquery.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="{$basePath}/js/netteForms.js"></script>
<script src="{$basePath}/tinymce/tinymce.min.js"></script>
<script src="{$basePath}/js/nette.ajax.js"></script>
<script src="{$basePath}/js/naja.js"></script>
<script src="https://www.google.com/recaptcha/api.js?render=explicit"></script>
<script src="{$basePath}/js/invisibleRecaptcha.min.js"></script>
</body>
a vložil do formuláře invisible recaptchu:
$form->addInvisibleReCaptcha('recaptcha', $required = true, $message = 'Jste opravdu člověk?')->setMinimalScore(0.8);
Když si načtu formulář (vypisuje se ve skrytém modal okně, ale to ničemu nevadí ne?) tak tam vidím vytvořený div jak má být:
<div class="g-recaptcha" name="recaptcha" value="" data-sitekey="xxx" data-size="invisible"></div>
Už po načtení stránky nevidím nikde na stránce po straně tu ikonu
recaptchy, ale jelikož se vytvořil div tak zkouším formulář.
Odešlu, nic se nestane.
Takže když si ve formuláři nastavím
$form->onError[] = function($form) {
bdump($form);
};
vypíše se mi formulář, kde vidím že se mi v hodnotách odesílá jen
email, žádná recaptcha a v errors je
[0 ⇒ ‚This field is required.‘]
Recaptchu tam chci mít povinně, proto nechávám parametr required na true.
Nejspíš je tedy problém už v začátku, že se mi nevypisuje ta
postranní ikona recaptchy někde, která by symbolizovala že se načetla
OK?
Testuji lokálně, ale ani na serveru s jinými klíči založenými pro
subdoménu to nefunguje a nic se nezobrazuje, formulář se pak neodešle.
Ani v admin consoli google pro recaptchu nevidím že by se vytvořil nějaký request, všude svítí samé 0. Nevím jestli to má nějaký delay, ale poprvé jsem to zkoušel už před týdnem a stále nic, takže hádám že request kdyby došel, tak se propíše.
Díky předem za rady, kde by mohl být problém.
Editoval MikKuba (30. 1. 15:17)