2017-01-04 5 views
0

私は何が間違っているのかを探し求めてきましたが、すべての解決策はありませんが、私の問題を解決するようなことはありません。私はrecaptchaとフォームを持って、それはかなり簡単です。しかし、私のrecaptchaの検証は毎回失敗し、エコーは成功しなければならない時に "成功していません"。私は間違って何をしていますか?ここに私のコードです。前もって感謝します。私のrecaptchaレスポンスがうまくいかないのはなぜですか?

<?php 
require_once('src/autoload.php'); 
require_once('src/ReCaptcha/ReCaptcha.php'); 
require_once('src/ReCaptcha/RequestMethod.php'); 
require_once('src/ReCaptcha/RequestParameters.php'); 
require_once('src/ReCaptcha/Response.php'); 
require_once('src/ReCaptcha/RequestMethod/Post.php'); 
require_once('src/ReCaptcha/RequestMethod/Socket.php'); 
require_once('src/ReCaptcha/RequestMethod/SocketPost.php'); 
require_once('src/ReCaptcha/RequestMethod/Curl.php'); 
require_once('src/ReCaptcha/RequestMethod/CurlPost.php'); 

$gRecaptchaResponse = $_POST['g-recaptcha-response']; 
$remoteIp = $_SERVER['REMOTE_ADDR']; 

$SITEKEY = 'XXXX'; 
$secret = 'XXXX'; 

$recaptcha = new \ReCaptcha\ReCaptcha($secret); 
$resp = $recaptcha->verify($gRecaptchaResponse, $remoteIp); 
if ($resp->isSuccess()) { 
    echo "success"; 
} else { 
    $errors = $resp->getErrorCodes(); 
    echo "not success"; 
    echo $errors; 
} 
?> 
+0

ユーザーのIPを送信せずに試しましたか?私はこれをやると何らかの理由でうまくいかなかった前に問題を抱えていましたが、それはオプションです。 –

+0

@ThomasSmyth Does does work :( –

+0

このファイルをどのように呼び出していますか?フォームを送信するとき、またはフォームと同じページのボタンからAJAX呼び出しを受けたときですか? –

答えて

1
//reCaptcha 
$StrUrl = "https://www.google.com/recaptcha/api/siteverify"; 
$StrSecretKey = "XXXXXX"; 

$data = array('secret' => $StrSecretKey, 'response' => $_POST['Response']); 

$ch = curl_init($StrUrl); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); 
$Response = curl_exec($ch); 
curl_close($ch); 

$Robot = json_decode($Response); 

$data = 0; 

if(isset($Robot->success) AND $Robot->success==true){ 
    //CODE 
} 

これを試してみてください。もともとはAJAX呼び出しのために設計されていましたが、$ _POST ['Response']を応答変数の名前に変更するとうまくいけばうまくいくはずです。

+1

Hey私はそれが働いたと思う!ありがとう –

+0

問題はありません。 –

関連する問題