Я получаю NULL для recaptcha. $ _POST ['recaptcha_response'] дает большой алфавитно-цифровой. Я следовал онлайн-учебнику, и он не работает. Я использую php5, если это имеет значение, но я не думаю, что это должно.
// if post is set then check database
if ( $_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['recaptcha_response']) ) {
// Build POST request:
$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
$recaptcha_secret = 'my_secret_key';
$recaptcha_response = $_POST['recaptcha_response'];
//die($recaptcha_response);
// Make and decode POST request:
$recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
$recaptcha = json_decode($recaptcha);
//die(var_dump($recaptcha));
// Take action based on the score returned:
if ($recaptcha->score >= 0.5) {
// Verified - send email
} else {
// Not verified - show form error
die('reCAPTCHA error score is '. $recaptcha->score);
}````
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
<script src="https://www.google.com/recaptcha/api.js?render=my_site_key"></script>
<script>
grecaptcha.ready(function () {
grecaptcha.execute('my_site_key', { action: 'contact' }).then(function (token) {
var recaptchaResponse = document.getElementById('recaptchaResponse');
recaptchaResponse.value = token;
});
});
</script>
Help it's not a json_decode problem with php cause i'm on php 5.6 with json. json_last_error() gives me a 'no error'.