请帮我使用这个recaptcha v2。 我不知道问题是什么,但这是我的代码
if (isset($_POST['submit']))
{
if(isset($_POST['g-recaptcha-response'])){
//your site secret key
$secret = 'secrete key';
//get verify response data
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
if($responseData->success){
//code here
}
else{
echo "<script>alert('Please click reCAPTCHA');</script>";
}
}
我在localhost中使用此代码我没有任何问题。我已经在google recaptcha中输入了我的域名,我认为唯一的问题是代码。
答案 0 :(得分:1)
使用file_get_cotents()
从
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
到curl
$url = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response'];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, TRUE);
$curlData = curl_exec($curl);
curl_close($curl);
$responseData = json_decode($curlData, TRUE);
尝试此代码:
if(isset($_POST['submit']) && !empty($_POST['submit'])) {
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])) {
$secret = 'KEY';
$url = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response'];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, TRUE);
$curlData = curl_exec($curl);
curl_close($curl);
$responseData = json_decode($curlData, TRUE);
if($responseData['success'] == 'true') {
// Success code here
}
else
{
echo "<script>alert('Invalid reCAPTCHA');</script>";
}
}
}