2014-12-08 5 views
0

reCaptcha 구현이 작동하지 않습니다. Google에서 문서를 공부했지만 작동하지 않습니다.reCaptcha가 유효하지 않음

I는 다음과 같이 구현 된 플러그인 :

<form role="form" name="formular" method="post" onsubmit="return chkFormular()"> 
     <div class="form-group" id="name"> 
      <label class="control-label" for="name">Name</label> 
      <input type="text" class="form-control" name="name" placeholder="Name"> 
     </div> 
     <div class="g-recaptcha" data-sitekey="my_public_key"></div> 
     <button type="submit" class="btn btn-default">Abschicken</button> 
</form> 

보안 문자는 잘 작동합니다. 하지만 지금은 이런 식의 유효성을 검사하려면 :

require_once('../php/recaptchalib.php'); 
$privatekey = "my_private_key"; 
$publickey = "my_public_key"; 

# the response from reCAPTCHA 
$resp = null; 

# was there a reCAPTCHA response? 
if($_POST["recaptcha_response_field"]) 
{ 
    $resp = recaptcha_check_answer (
      $privatekey, $_SERVER["REMOTE_ADDR"], 
      $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); 
     if($resp->is_valid) 
     { 
     //send_mail 
     mail(); 
     } 
     else { 
     if($resp->error == 'incorrect-captcha-sol') { 
      // do something 
     } 
    } 
} 

하지만 그것은 mail() 메소드를 호출하지 않습니다.

답변

0

PHP의 mail 함수에는 3 개의 필수 인수가 있습니다. 그로 인해 실패했을 가능성이 있습니다. newly released reCAPTCHA version 사용을 고려해야합니다.

+0

나는 당신이 나를 잘못 생각한다고 생각합니다. captcha가 없으면 메일이 정상적으로 작동합니다. 내 코드를 편집하고 잘 작동하기 때문에 메일 코드를 삭제하십시오. 그리고 새로 reCaptcha 버전을 사용했지만 문서에서 뭔가를 찾을 수 없습니다. – Dominik

+0

그런 다음 ** 무엇이 작동하지 않는지 ** 설명해야합니다. 오류가 있습니까? 'var_dump ($ resp-> is_valid)'는 무엇을 보여줍니까? 문제 해결 단계가 표시되지 않았고 여전히 'mail' 호출에 문제가 없다는 것이 확실하지 않습니다. 특히 실제 코드를 표시하지 않는 것이 좋습니다. – ceejayoz

+0

나는 captcha가 작동하지만 유효성 검사가 작동하지 않는다고 생각한다. 이유를 찾았습니다. 나는 그 질문에 나중에 답한다. – Dominik

-1

나는 그 자체로 문제를 해결할 수있다.

<div class="g-recaptcha " data-sitekey="6Ldj_v4SAAAAAF8dEtmmJ0kv8kkLLEJuQfcdCOMZ"></div> 

을 그리고 나는이 PHP 스크립트를 추가 :

나는 내 양식이 같은 보안 문자를 삽입

if (isset($_POST["g-recaptcha-response"]) && !(empty($_POST["g-recaptcha-response"]))) { 
    //send mail here 
} 

트릭은,입니다 "g-reCAPTCHA를 응답"에 captcha가 해결하지 못하면 게시물이 비어 있습니다. 그렇지 않으면 읽을 수없는 문자열이 나타납니다.

+0

전체 유효성 검사 논리가 누락되었습니다. 응답을'https : //www.google.com/recaptcha/api/siteverify? secret = your_secret & response = response_string & remoteip = user_ip_address'로 보내야합니다. 그렇지 않으면, 나는 다만 나의 spambot 응답으로 무엇이든을 복종시킬 수 있고 작동 할 것이다. – ceejayoz

+0

알아,하지만 어떻게? – Dominik

관련 문제