google rechapta v3
Szerző
Üzenet
Sziasztok!
Abban kérnék segítséget, hogy a google rechapta v3 php oldali visszaellenőrzésénél hogyan néz ki a rechapta php kódja egy olyan esetben ahol az a lényeg...
rechapta php kódja
ha nem felelt meg tehát robot, töltse be a hibaoldalt
ha megfelelt, tehát nem robot, fusson a php tovább
Jelenleg így néz ki, ezt anno segítséggel csináltam, de segítségem már nincs sajnos
itt jön az a rész hogy felépül majd elküld egy emailt, de...
Az email akkor is elmegy az e-mail a jelen helyzetben ha robotot érzékel... tehát akkor is tovább fut a php ha robot csinálja
Köszönöm előre is a segítségeteket!
Abban kérnék segítséget, hogy a google rechapta v3 php oldali visszaellenőrzésénél hogyan néz ki a rechapta php kódja egy olyan esetben ahol az a lényeg...
rechapta php kódja
ha nem felelt meg tehát robot, töltse be a hibaoldalt
ha megfelelt, tehát nem robot, fusson a php tovább
Jelenleg így néz ki, ezt anno segítséggel csináltam, de segítségem már nincs sajnos
Kód:
// google rechapta v3
if (isset($_POST['g-recaptcha-response']))
{
$captcha = $_POST['g-recaptcha-response'];
}
else
{
$captcha = false;
}
if (!$captcha)
{
//Do something with error
include ('mail_send_fail_robot.html');
}
else
{
$secret = 'a titkos kódom-';
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" . $secret . "&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']);
// use json_decode to extract json response
$response = json_decode($response);
if ($response->success === false)
{
//Do something with error
include ('mail_send_fail_robot.html');
}
}
//... The Captcha is valid you can continue with the rest of your code
//... Add code to filter access using $response . score
if ($response->success == true && $response->score <= 0.5)
{
//Do something to denied access
}
itt jön az a rész hogy felépül majd elküld egy emailt, de...
Az email akkor is elmegy az e-mail a jelen helyzetben ha robotot érzékel... tehát akkor is tovább fut a php ha robot csinálja
Köszönöm előre is a segítségeteket!
Szia!
A kapcsolódó kódrészletek nélkül nehéz megmondani, hogy pontosan mi lehet a hiba, de a következő ötleteim lennének:
Van a kódodban két darab
sor. Ennek a fájlnak nem tudom, mi lehet a tartalma, de ha tényleg csak HTML kódot tartalmaz, PHP-t nem, akkor a fájl "beinclude-olása" után a bemásolt kódod további részei még futni fognak, és ha pont úgy van megoldva a levélküldés, hogy ott már nem történik ellenőrzés, akkor a levél elküldésre kerülhet.
Próbálj meg egy-egy
Van egy harmadik rész, aminek a robotokat meg kellene fognia (mivel a 0-hoz közelebbi pontszámok a "rossz interakciók", és itt sikeres megoldásra, de 0,5 vagy azalatti pontszámra vizsgál a kód):
Itt a
sor alatt nem látok
párost.
---
Megjegyzés:
Az
De erre az
A kapcsolódó kódrészletek nélkül nehéz megmondani, hogy pontosan mi lehet a hiba, de a következő ötleteim lennének:
Van a kódodban két darab
Kód:
include ('mail_send_fail_robot.html');
sor. Ennek a fájlnak nem tudom, mi lehet a tartalma, de ha tényleg csak HTML kódot tartalmaz, PHP-t nem, akkor a fájl "beinclude-olása" után a bemásolt kódod további részei még futni fognak, és ha pont úgy van megoldva a levélküldés, hogy ott már nem történik ellenőrzés, akkor a levél elküldésre kerülhet.
Próbálj meg egy-egy
exit;
(vagy die();
) utasítást beszúrni az include
sorok utáni sorokba.
Van egy harmadik rész, aminek a robotokat meg kellene fognia (mivel a 0-hoz közelebbi pontszámok a "rossz interakciók", és itt sikeres megoldásra, de 0,5 vagy azalatti pontszámra vizsgál a kód):
Kód:
if ($response->success == true && $response->score <= 0.5)
Itt a
Kód:
//Do something to denied access
sor alatt nem látok
include ('mail_send_fail_robot.html');
utasítást. Ha nem csak a bemásolt kódrészletből hiányzik, hanem a rendes fájlból is, akkor ide is tegyél egy
Kód:
include ('mail_send_fail_robot.html');
exit;
párost.
---
Megjegyzés:
Az
exit
utasítás meghívásakor a kód futása meg fog állni azon a ponton, a későbbi utasítások már nem futnak le. Ha esetleg ez valami miatt nem járható út (pl. a fájl végén van egy lábléc vagy hasonló, aminek meg kell jelennie / le kell futnia), akkor megpróbálhatod azt is, hogy magát az e-mail küldést "csomagolod be" egy ellenőrzésbe, például:
Kód:
if (isset($response) && response->success == true && response->score > 0.5) {
// email küldése...
}
De erre az
exit;
hívások mellett valószínűleg nem lesz szükség.
Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.