2014-11-27 3 views
0

나는 CAPTCHAs의 유용성에 대한 연구를하고 있으며 현재 Google의 reCAPTCHA를보고 있습니다.reCAPTCHA가 다시로드 될 때 찾기

사용자가 보안 문자를 다시로드 할 수 없어서 CAPTCHA를 다시로드하는 횟수를 계산하려고하는데 그 정보를 얻을 수있는 방법을 찾지 못하는 것 같습니다. 기본적으로 사용자가 새로운 보안 문자를 요청할 때마다 카운터를 늘리고 싶습니다. JS/PHP를 사용하고 있습니다.

감사합니다.

답변

1

PHP에서 reCAPTCHA를에 의해 주입 된 HTML은 다시로드 버튼에 대한 다음과 같은 HTML이 포함

<a title="Get a new challenge" id="recaptcha_reload_btn"><img alt="Get a new challenge" src="http://www.google.com/recaptcha/api/img/red/refresh.gif" id="recaptcha_reload" height="17" width="25"></a> 

이 버튼에 자바 스크립트 이벤트 리스너를 추가하고 횟수를 셀 수 의미를 그 클릭합니다. 이 예는 jQuery를 사용하여 전역 변수를 증가시킵니다.

var recaptcha_reloaded = 0; 
$(document).on("click", "#recaptcha_reload_btn", function() { 
    recaptcha_reloaded++; 
}); 

이 정보를 캡처 한 후 보내는 방법은 사용자가 결정합니다. 하나의 가능성은 양식을 제출하기 전에 양식의 숨겨진 입력 필드에이를 주입하는 것입니다.

단추가 인 횟수가 실제로 재로드 된 횟수가 아니라는 것을 유의하십시오. recaptcha reload 버튼을 클릭 할 때와 recaptcha가 실제로 다시로드 될 때까지 지연이 있으며이 간격 동안 추가 클릭은 무시됩니다.

+0

삽입 된 HTML에서 JavaScript가 작동하는 것처럼 보이지 않습니다. 단순한 클릭 경고도 등록되지 않았습니다. 스크립트를 어디에 넣어야합니까? 나는 운이없는 여러 곳을 시도했다. 또한 reCAPTCHA에 대해 실제로 동일한 코드가 있는지 확신 할 수 없습니다. 실제로 삽입 된 HTML은 다음과 같습니다.

#recaptcha_reload_btn을 .rc-buttonreload로 변경해 보았지만 행운이 없습니다. – Leherenn

+0

Google에서 올바른 코드를 사용하지 않아서 작동하지 않는 이유가 무엇입니까? PHP 라이브러리 대신 "

"을 사용하고있었습니다. – Leherenn

0
$(document).on('click','#recaptcha_reload',function(){ 
    try { 
    _gaq.push(['_trackEvent', location.href, 
       'Captcha reload', '']); 
    } catch(e) {} 
}); 
+1

문제를 해결하는 이유를 포함하여 답을 편집하십시오. –

관련 문제