2011-02-16 4 views
2

저는 웹 사이트의 일부 웹 페이지에서 스팸을 차단하기 위해 Google Recaptcha 웹 서비스를 사용하는 것에 익숙하며 Javascript와 PHP를 내 웹 페이지에 응답하여 병합하여 AJAX를 사용하여이를 수행합니다.Recaptcha 매개 변수에 액세스하는 방법 [recaptcha_challenge_field and recaptcha_response_field]?

다음 링크에서 관련 정보를 모두 읽었으며 단계를 수행했으며 모든 것이 정확했습니다. 내가 직면

Google Code recaptcha Documentation

문제는 검증 과정 [recaptcha_challenge_field 및 recaptcha_response_field]에 사용 된 두 개의 필드입니다

나는 그것이 나에게 다음과 같은 오류를 제공 verify.php에서 recaptcha_check_answer 함수를 호출 : - [recaptcha_challenge_field 및 recaptcha_response_field]가 널 (null)이 아닌 한정된 것을 의미

incorrect-captcha-sol

.

이 두 필드와 변수는 프로세스 중에 사용한 reCAPTCHA PHP 라이브러리에 입력이 있어야하며 getters에 해당 함수가 있어야합니다.

나는 PHP 파일 recaptchalib.php를 찾았지만 찾지 못했습니다.

숨겨진 형식의 새 입력 요소를 추가하고 recaptcha_challenge_field 및 recaptcha_response_field로 이름을 바꾸어 recaptcha 매개 변수를 저장해야합니까?

나는 가이드를 말한대로 올바른 방향으로 전달할 수 있지만 제대로 작동하지 않을지 궁금합니다. 새로운 변수를 정의하고이를 실제 recaptcha 매개 변수와 연결하는 방법을 설명해야합니다.

내가 reCAPTCHA를 구현하는 방법과 그 해결 방법을 가르쳐하기 전에 그것을 사용하는 사람들에게하고 싶은 나는 당신의 대답

+1

reCaptcha 코드를 첨부하십시오. – kjy112

답변

1

http://code.google.com/apis/recaptcha/docs/php.html에서 제공되는 클라이언트 측 코드를 사전에 도움과 감사 감사 :

나는 N 내부에만 라인을 포함하여 작동하도록 "NOSCRIPT"버전을 받고 있어요, 지금

<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=your_public_key"></script> 

<noscript> 
    <iframe src="http://www.google.com/recaptcha/api/noscript?k=your_public_key" height="300" width="500" frameborder="0"></iframe><br/> 
    <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea> 
    <input type="hidden" name="recaptcha_response_field" value="manual_challenge"/> 
</noscript> 

:

require_once('recaptchalib.php');<br /> 
$publickey = "your_public_key"; // you got this from the signup page<br /> 
echo recaptcha_get_html($publickey); 

는로 확장 oscript 태그; 태그 자체가 아니라 스크립트 태그와 그 내용을 완전히 삭제해야합니다. 단점은 승인 프로세스의 일부로 수동 복사 - 붙여 넣기를 수행해야한다는 것입니다.

스크립트 버전이 표시되고 새로 고침되고 입력을 받아들이지 만 recaptcha_challenge_field recaptcha_response_field CGI 변수는 형식의 대상 PHP에서 print_r($_POST);에 따라 설정되지 않은 상태로 유지됩니다.

그래서 위의 문제에 대한 해결책이 절반입니다.

관련 문제