De reCAPTCHA v3 stuurt een score tussen 0.0 en 1.0 mee. Ik wil deze score gebruiken om mensen wel in te laten loggen en bots niet. Echter, het lukt me niet om de score als aparte variabele te krijgen.

<?php
	$verify = file_get_contents($url, false, $context);
	$captcha_success = json_decode($verify);
	$arr =  var_export($captcha_success, true);
	$score = $arr['score'];
?>


echo $verify toont
{ "success": true, "challenge_ts": "2018-05-09T20:17:34Z", "hostname": "xxx", "score": 0.9 }

echo $arr toont
stdClass::__set_state(array( 'success' => true, 'challenge_ts' => '2018-05-09T20:18:46Z', 'hostname' => 'xxx', 'score' => 0.9, ))

echo $score toont s

En ik wil $score = 0.9 gaan gebruiken.

Wat zegt: $captcha_success? is het niet simpeler om die direct uit te lezen voor de directe verwerking?
Als je een array wilt moet je gewoon de 2e param van json_decode gebruiken:
<?php
    $verify = file_get_contents($url, false, $context);
    $arr = json_decode($verify, true);
    $score = $arr['score'];
?>

Of met een object werken:

<?php
    $verify = file_get_contents($url, false, $context);
    $captcha_success = json_decode($verify);
    $score = $captcha_success->score;
?>
echo $captcha_success geeft output en loopt gelijk vast, dus helaas.

[size=xsmall]Toevoeging op 09/05/2018 22:42:48:[/size]

YES!! Eindelijk. Ik heb er de gehele middag op zitten broeden...

[size=xsmall]Toevoeging op 09/05/2018 22:43:06:[/size]

$score = $captcha_success->score; werkt
Dit soort problemen kan je debuggen via de print_r of de var_dump functie. Hiermee kan je makkelijk zien wat json_decorde als resultaat geeft.

Reageren