100.phpに200.phpにajaxを呼び出してフォームを作成しました。PHP AJAXが動作していないGoogleのreCAPTCHA
<html>
<head>
<!-- include reCAPTCHA API JavaScript library given by Google -->
<script src='https://www.google.com/recaptcha/api.js'></script>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#btn").click(function(event){
event.preventDefault();
var myname = $("#name").val();
var myaddress = $("#address").val();
var yourData ='name='+myname+'&address='+myaddress; // php is expecting name and age
$.ajax({
type:'POST',
data:yourData,//Without serialized
url: '200.php',
success:function(data) {
if(data){
$('#testform')[0].reset();//reset the form
$('#result').html(data); // here html()
//alert('Submitted');
}else{
return false;
}
}
});
});
});
</script>
</head>
<body>
<form method="post" id="testform">
Name: <input type="text" name="name" value="" id="name"/> <br />
Address: <input type="text" name="address" value="" id="address"/>
<!--
place for the reCAPTCHA widget div with your site key
data-theme="dark" attribute - gives dark version
-->
<div class="g-recaptcha" data-sitekey="6LeJ8h8TAAAAAMS9nQX89XccpsC-SDeSycipiaHN"></div>
<input type="submit" name="ok" value="Send" id="btn"/>
</form>
<div id='result'></div>
</body>
200.phpをキャプチャし、入力されたdiaplay名前とadddressユーザーを検証しません。しかし、私の問題は、名前と住所を入力したときにcaptchaをクリックすることです。 Capthaも検証され、私のスクリーンショットのように表示されます。名前と住所はページに表示されません。 http://raveen.comlu.com/100.php
私はPHPでAjaxを呼び出すのが初めてです。私はgoogledと私は火の虫でトラブルシューティングすることができます。私がここで間違っていることを言うことができますか?私のajaxコールが完了したかどうかを確認するような、火薬瓶のトラブルシューティングの手順?ご協力いただきありがとうございます。
注:これらのコードをすべてajax呼び出しを使用せずに1ページに入れると、それはうまくいく!!!!!私は、これはページのリロードなしで起こるたい....
200.php
<?php
require_once('recaptchalib.php');
if(isset($_POST['ok'])){
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])){
$secret = "6LeJ8h8TAAAAAB3IFQVQEaoApFe6lvq4Wxlktvn1"; //your secret key
$response = null; //empty response
$reCaptcha = new ReCaptcha($secret); //check secret key is present
$response = $reCaptcha->verifyResponse($_SERVER['REMOTE_ADDR'], $_POST['g-recaptcha-response']);
//$response variable will report back with "success"
if($response!=null && $response->success){
echo "<h1>Hi ". $_POST['name']. " from ". $_POST['address']. ", thanks for submitting the form!</h1>";
}
}
else{
echo "<h1>Please click on the reCAPTCHA box.</h1>";
}
}
?>
は、あなたがGoogleのreCAPTCHAのV2を使用していますか? –
@RajdeepPaul、私は分かりません。それをどうやって知っていますか? –
私は以下の答えを与えました。うまくいけば、これで問題は解決します。 –