Időzóna: (GMT +1 óra) RSS - hozzászólások

google rechapta v3

Szerző
Üzenet
alien2222
Regisztrált tag
Regisztrált tag


Csatlakozott: 2021.10.06. Szerda 9:54
Hozzászólások: 1
Hozzászólás Elküldve: 2021.10.06. 10:23    Hozzászólás témája: google rechapta v3
Hozzászólás az előzmény idézésével
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

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!

Felhasználó profiljának megtekintése Privát üzenet küldése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2921
Hozzászólás Elküldve: 2021.10.11. 19:01    Hozzászólás témája:
Hozzászólás az előzmény idézésével
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

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.

Felhasználó profiljának megtekintése Privát üzenet küldése
Hozzászólások megtekintése:  

Időzóna: (GMT +1 óra) RSS - hozzászólások
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.

Hirdetés
Hirdetés