reCaptcha v AJAX formuláři
- admin@easyweb4u.cz
- Backer | 146
Mám ve formuláři recaptchu. V presenteru mám
<?php
$this->recaptcha = false;
if (isset($_POST['g-recaptcha-response'])) {
$this->recaptcha = json_decode(file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=XXXXX&response=' . $_POST['g-recaptcha-response']));
$this->recaptcha = $this->recaptcha->{'success'};
}
?>
Ve dvou webech mi to – kupodivu – funguje, ale v dalších už ne. Všechny jsou Nette 3.0. Ta POST proměnná přijde, ale json_decode už nevrátí co má, nebo nefunguje toto $this->recaptcha->{‚success‘}. Kdyby mi to nefungovalo jinde, tak neotravuju, ale tohle mě docela štve. Dík.
Editoval admin@easyweb4u.cz (7. 7. 2021 9:32)
- admin@easyweb4u.cz
- Backer | 146
Tak tedy odpovím si sám. Na serveru musí být povoleno allow_url_fopen. Pak to normálně funguje, mám recaptchu v ajaxovém formuláři a scripty pro načtení recaptchy jsem dal do snippetu, pro případ, že podmínky pro vyplnění polí formuláře nejsou splněny. Jen mi není jasné, proč CONTRIBUTTE nebo UESTLA píší pro recaptchu celé moduly, když to funguje takto jednoduše.
- uestla
- Backer | 799
Ahoj, hlavní argumenty pro balíček:
- znovupoužitelnost (tebou uvedený kód nechceš psát pořád znovu + v něm máš hardcodovaný secret)
- zasazení do Nette (jde o formuláře, tak to chceš mít jako
rozšíření formulářů vč. validační hlášky, a už vůbec ne používat
superglobální
$_POST
) - lepší možnost integrace do projektu (
allow_url_fopen
je fajn, ale většinou máš v aplikaci jinou vrstvu HTTP klienta, kterou chceš použít)
- admin@easyweb4u.cz
- Backer | 146
Felix napsal(a):
Ahoj @adminaeasyweb4ucz, contributte/recaptcha jsem napsal pro lidi, kteri nemaji s recaptcha takovou zkusenost. A take pro inspiraci, jak psat balicky do nette.
Já jsem se pokoušel přes composer contributte/recaptcha nainstalovat, ale neprošlo to – tuším, že tam nebyla kompatibilita s verzi DI. Používám nette 3.0. Je chyba na mé straně?
- admin@easyweb4u.cz
- Backer | 146
uestla napsal(a):
Ahoj, hlavní argumenty pro balíček:
- znovupoužitelnost (tebou uvedený kód nechceš psát pořád znovu + v něm máš hardcodovaný secret)
- zasazení do Nette (jde o formuláře, tak to chceš mít jako rozšíření formulářů vč. validační hlášky, a už vůbec ne používat superglobální
$_POST
)- lepší možnost integrace do projektu (
allow_url_fopen
je fajn, ale většinou máš v aplikaci jinou vrstvu HTTP klienta, kterou chceš použít)
Jo jo, díky, tomu rozumím. Až budu mít čas, ještě se k uestla captche vrátím. Gratuluji, je to pěkné dílo.
- admin@easyweb4u.cz
- Backer | 146
admin@easyweb4u.cz napsal(a):
Felix napsal(a):
Ahoj @adminaeasyweb4ucz, contributte/recaptcha jsem napsal pro lidi, kteri nemaji s recaptcha takovou zkusenost. A take pro inspiraci, jak psat balicky do nette.
Já jsem se pokoušel přes composer contributte/recaptcha nainstalovat, ale neprošlo to – tuším, že tam nebyla kompatibilita s verzi DI. Používám nette 3.0. Je chyba na mé straně?
ještě bych měl prosbu, posílám trvalým příkazem 220,–. Můžete ze mě udělat Backera?
- Felix
- Nette Core | 1245
admin@easyweb4u.cz napsal(a):
Já jsem se pokoušel přes composer contributte/recaptcha nainstalovat, ale neprošlo to – tuším, že tam nebyla kompatibilita s verzi DI. Používám nette 3.0. Je chyba na mé straně?
Posli mi prosim nejakou error hlasku nebo neco co nefunguje, bohuzel to takto muzu jen hadat, cim by to mohlo byt.
ještě bych měl prosbu, posílám trvalým příkazem 220,–. Můžete ze mě udělat Backera?
Poresim s @DavidGrudl.
- admin@easyweb4u.cz
- Backer | 146
Felix napsal(a):
admin@easyweb4u.cz napsal(a):
Já jsem se pokoušel přes composer contributte/recaptcha nainstalovat, ale neprošlo to – tuším, že tam nebyla kompatibilita s verzi DI. Používám nette 3.0. Je chyba na mé straně?
Posli mi prosim nejakou error hlasku nebo neco co nefunguje, bohuzel to takto muzu jen hadat, cim by to mohlo byt.
ještě bych měl prosbu, posílám trvalým příkazem 220,–. Můžete ze mě udělat Backera?
Poresim s @DavidGrudl.
provedl jsem upgrade Nette (kvůli té bezpečnostní díře) a už to přes composer proběhlo
C:\xampp\htdocs\solidarita>composer require contributte/recaptcha
Using version ^3.4 for contributte/recaptcha
./composer.json has been updated
Running composer update contributte/recaptcha
Loading composer repositories with package information
Updating dependencies
Lock file operations: 2 installs, 0 updates, 0 removals
– Locking contributte/di (v0.5.1)
– Locking contributte/recaptcha (v3.4.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
– Downloading contributte/di (v0.5.1)
– Downloading contributte/recaptcha (v3.4.1)
– Installing contributte/di (v0.5.1): Extracting archive
– Installing contributte/recaptcha (v3.4.1): Extracting archive
1 package suggestions were added by new dependencies, use
composer suggest
to see details.
Generating autoload files
jinak k tomu upgradu Nette na ostrých webech jsem před chvílí napsal na forum. Jestli bych tě mohl poprosit…
- admin@easyweb4u.cz
- Backer | 146
C:\xampp\htdocs\solidarita>composer suggest
- nette/utils suggests
- ext-intl: to use Strings::webalize(), toAscii(), normalize() and compare()
- uestla/recaptcha-control suggests
- guzzlehttp/guzzle: Needed by ReCaptchaControl\Http\Requester\GuzzleRequester.
2 additional suggestions by transitive dependencies can be shown with –all
nevěděl by někdo co s tím?