首页 > 解决方案 > 用于 reCaptcha 表单提交的 PHP Server 站点总是显示错误

问题描述

我的 reCaptcha v2 实现有一些问题。我正在使用 AJAX 请求来验证 reCaptcha。

form_submission.php:

<?php 
$secret = "----mykey----";
$ip = $_SERVER['REMOTE_ADDR'];

$postvars = array("secret"=>$secret, "response"=>$recaptcha, "remoteip"=>$ip);
$url = "https://www.google.com/recaptcha/api/siteverify";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
$data = curl_exec($ch);
$captcha_success=json_decode($data, true);
curl_close($ch);
  
if ($captcha_success['success']==false) {
echo 'ERROR';
}
else {
echo 'SUCCESS';
}
?>

HTML:

button=document.getElementById("saveForm");

button.addEventListener('click', submitaction);

function submitaction(e) {
    e.preventDefault();
    
    $.ajax({
    type: 'POST',
    url: 'form_submission.php',
    data: {captcha: grecaptcha.getResponse()}, 
    success: function(response){
    alert(response);
    grecaptcha.reset();
    }
    }
   
    );
}

它只是一直给我“错误”。有人能帮我吗?

标签: phphtmlajax

解决方案


推荐阅读