2016-03-20 11 views
1

とてもシンプルなようですが、websiteにGoogleのrecaptchaを追加しました。Google Recaptcha(PHP)

<script src='https://www.google.com/recaptcha/api.js'></script> 
<div class="g-recaptcha" data-sitekey="My key would be here"></div> 

しかし、人々はフォームを記入して、キャプチャを完了することなくメールを送信することができます。 (だから、彼らは私がもちろんボットに私を残しているどんなパズルを解決する必要はありません)

私は基本的に、 Recaptchaを "完了しました"。それで彼らはメールを送ることができます。

私のPHPコード:

if ($_POST['submit']) { 
     if ($email != '') { 
      if ($human == '4') {     
       if (mail ($to, $subject, $body, $from)) { 
        echo '<p>You have successfully submitted your information to PS4RS. Subscribers to our mailing list will begin to periodically receive updates.</p>'; 
       } else { 
        echo '<p>Something went wrong, go back and try again!</p><p><input type="button" value="Go Back" onclick="history.back(-1)" class="goback" /></p>'; 
       } 
      } else if ($_POST['submit'] && $human != '4') { 
       echo '<p>You answered the anti-spam question incorrectly!</p><p><input type="button" value="Go Back" onclick="history.back(-1)" class="goback" /></p>'; 
      } 
     } else { 
      echo '<p>You need to fill in all required fields!!</p><p><input type="button" value="Go Back" onclick="history.back(-1)" class="goback" /></p>'; 
     } 
    } 
?> 

私は本当にこれが私の最高の試みで、PHPでコーディングする方法で見当もつかない。

+3

を支援/ old/docs/php#クイックスタート)。それを最初に行ってください。 – Ohgodwhy

+0

@ブリムストンこれは、既存のフォームのPHPであり、Google Recaptchaとは関係ありません。 – Ohgodwhy

+0

[Google it](https://www.google.no/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#safe=active&q=google+recaptcha+example)には次のような例があります。あなたのコードにGoogleのreCAPTCHAを実装する必要があります。 – Qirel

答えて

1

を助けている場合

<?php 
    require_once('recaptchalib.php'); 
    $privatekey = "your_private_key"; 
    $resp = recaptcha_check_answer ($privatekey, 
          $_SERVER["REMOTE_ADDR"], 
          $_POST["recaptcha_challenge_field"], 
          $_POST["recaptcha_response_field"]); 

    if (!$resp->is_valid) { 
     // What happens when the CAPTCHA was entered incorrectly 
     die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . 
    "(reCAPTCHA said: " . $resp->error . ")"); 
    } else { 
     // Your code here to handle a successful verification 
    } 
?> 

は教えてください。私はこの答えhere

<?php 
    $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=". $yoursecret."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']); 
    $googleobj = json_decode($response); 
    $verified = $googleobj->success; 
    if ($verified === true){ 
    //do stuff 
    } 

ので、あなたの目的のために...

<?php 
if($_POST['submit']) { 
    $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=". $yoursecret."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']); 
    $googleobj = json_decode($response); 
    $verified = $googleobj->success; 
    if($verified === true) { 
    if(mail($to, $subject, $body, $from)) { 
     echo '<p>You have successfully submitted your information to PS4RS. Subscribers to our mailing list will begin to periodically receive updates.</p>'; 
    } else { 
     echo '<p>Something went wrong, go back and try again!</p><p><input type="button" value="Go Back" onclick="history.back(-1)" class="goback" /></p>'; 
    } 
    } 
} 
?> 


$yoursecret

FOR YOUR 秘密鍵 inを追加してください見つかりました

(これは、サイトキーと異なるのです)


希望あなたは(https://developers.google.com/recaptcha [ドキュメントからサーバー側の検証の中]何かを実装していない

+0

ありがとう非常に基本的なコード:) – alpc

-1

これは、公式のGoogleのdevのWebページからである:これは私はそれを引用するつもりですので、これは私のオリジナルの答えではない

+0

への答えを見つけることができない質問をするサイトrecaptcha PHP apiは値下げしました – krummens

関連する問題