2014-12-29 6 views
1

reCAPTCHA 확인을 사용하여 양식이있는 웹 사이트를 구축 중입니다. Google documentation에서 필요에 따라 대상 도메인의 키를 만들었습니다. 그럼, reCAPTCHA를 섹션을ReCAPTCHA가 로컬 호스트에서 작동하지 않습니다.

HTML 양식

<form method="post" action="index.php"> 
    <div class="g-recaptcha" data-sitekey="PUBLIC_KEY"></div> 
    <input type="submit" name="submit" /> 
</form> 
를 포함하는 양식을 만든


양식이 제출되면, reCAPTCHA를 응답이 예에서 (확인

PHP 반응 검사, 그것은 단순히 인쇄됩니다).

$recaptcha = filter_input(INPUT_POST, 'g-recaptcha-response', FILTER_SANITIZE_STRING); 
$googleurl = "https://www.google.com/recaptcha/api/siteverify"; 
$privatekey = "PRIVATE_KEY"; 
$remoteip = $_SERVER['REMOTE_ADDR']; 

$curl = new Curl($googleurl."?secret=".$privatekey."&response=".$recaptcha."&remoteip=".$remoteip); 
$response = json_decode($curl->exec(), true); 

print_r($response); 
die(); 

말풍선은 단순히 말풍선 요청을 작성하고 결과를 반환하는 클래스입니다.

문제

코드 조각은 온라인으로 잘 작동하고 나는 성공과 오류의 경우에 모두 $response 값을 확인했습니다. 하지만 개발하는 동안, 나는 localhost에서도 사용해야한다. this post에서 설명한 것처럼 모든 키는 로컬에서 작동해야합니다. 그러나 코드를 실행할 때 아무 것도 표시되지 않습니다.

답변

1

많은 사람들이 같은 문제에 부딪 힐 수도 있기 때문에이 질문이 나이가 들어도 답변을 게시합니다.

나 '보안 토큰 생성 : 작업 코드를 -이는 secure token

I posted the solution here for reference

UPDATE를 사용하여 해결 될 수있는 로컬 호스트에서 reCAPTCHA를 실행하여 일반위한 인증 문제와 관련이있을 수 있다고 생각

<?PHP 

use ReCaptchaSecureToken\ReCaptchaToken as ReCaptchaToken; 
require_once("libs/ReCaptchaToken.php"); 

//Generate recaptcha token 
$config = [ 'site_key'  => 'place-your-site-key-here', 
      'site_secret' => 'place-your-secret-key-here' 
      ]; 
$recaptcha_token = new ReCaptchaToken($config); 
$recaptcha_session_id = uniqid('recaptcha'); 
$recaptcha_secure_token = $recaptcha_token->secureToken($recaptcha_session_id); 

?> 
: slushie's php implementation

PHP의 부분을 사용하고 있습니다

HTML :

<html> 
    <head> 
    ... 
    <script src='//www.google.com/recaptcha/api.js'></script> 
    </head> 
    <body> 
    <form> 
    ... 
    <div class="g-recaptcha" data-sitekey="place-your-site-key-here" data-stoken="<?PHP echo $recaptcha_secure_token; ?>"></div> 
    </form> 
    </body> 
</html> 
관련 문제