2017-02-21 8 views
0

私のフォームがブートストラップのモーダルにあるときに私のreCAPTCHAが動作しない理由を聞きたいのですが?あなたはそれを経験したことがありますか?Google reCAPTCHA未定義のインデックスg-recaptcha-response in bootstrap modal

sign.php

のindex.php

<!-- Button trigger modal --> 
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal"> 
    Open form 
</button> 

<!-- Modal --> 
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
    <div class="modal-dialog" role="document"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
     <h4 class="modal-title" id="myModalLabel">Modal title</h4> 
     </div> 
     <div class="modal-body"> 
     <form action="sign.php" method="post"> 
      <div class="form-group"> 
       Name: 
       <input type="text" name="name" id="name"> 
      </div> 
      <div class="form-group"> 
       reCaptcha: 
       <div id="r1" class="g-recaptcha" data-sitekey="6Lc-xQUUAAAAAFc4apq1qbS_VI-ZTJHalsj5BGaa"></div> 
      </div> 
     </form> 
     </div> 
     <div class="modal-footer"> 
     <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
     <button type="button" class="btn btn-primary">Save changes</button> 
     </div> 
    </div> 
    </div> 
</div> 

..私のreCAPTCHAが動作しているかどうかを確認するsign.phpを持っています。モーダルを使用しないとうまくいくのですが、モーダルを使用すると、recaptchaの検証(sign.php)は機能しません。

答えて

0
<button id="showModal" type="button">Show Modal</button> 

<div class="modal fade" id="myModal"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
     <h4 class="modal-title">Modal title</h4> 
     </div> 
     <div class="modal-body"> 
     <div id="captcha"></div> 
     </div> 
     <div class="modal-footer"> 
     <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
     </div> 
    </div> 
    </div> 
</div> 

jQueryの

$("#showModal").click(function() { 
    $("#myModal").modal("show"); 
    setTimeout(function() { 
     createRecaptcha(); 
    }, 100); 
}); 



function createRecaptcha() { 
    grecaptcha.render("captcha", {sitekey: "6LcgSAMTAAAAACc2C7rc6HB9ZmEX4SyB0bbAJvTG", theme: "light"}); 
} 

例:http://fiddle.jshell.net/emilhem/Lgovn28f/4/

+0

私のreCAPTCHAも表示されますが、上記のPHPコードを使用して検証しようとすると、実際には機能しません。 –

1

あなたは、PHPスクリプトにバックエンドすなわちにreCAPTCHAのの値を提出されていません。送信ボタンは</form>タグ内にある必要があります。そうしないと、フォームは送信されません。

チェック

バックエンドへのご回答---

if (isset($_POST['g-recaptcha-response'])) { 
    $response = $_POST['g-recaptcha-response']; 
    echo($response); 
} 
else { 
echo"value is not passing to the php script"; 
    } 

・ホープこのことができます!

+0

申し訳ありませんが、送信ボタンは表示されませんでした。とにかく、私はまた(あなたのPHPスクリプトコード)を試みたが、まだ動作しません。 –

+0

私はブートストラップのモーダルを使用しないとうまくいきますが、私がモーダルを試しても、私の検証は機能しません。そして、もし 'else else'をPHPコードで使用しないと' echo $ _POST ['g-recaptcha-response'] 'とエラーが出ます、" undefined index:g-recaptcha-response "と言います。 –

+0

答えで更新されたコードを試すことができますか?何が起こるかをご覧ください。 – neophyte

関連する問題