reCAPTCHAの形態は次のようである:reCAPTCHAのためjQueryのReCaptchaの検証方法は?
<script type="text/javascript"> var RecaptchaOptions = {"theme":"red","lang":"en"}; </script><script type="text/javascript" src="https://www.google.com/recaptcha/api/challenge?k=6LeThAsTAAAAAKYRjSpA8XZ1s4izK65hYr9ulCiD"> </script><noscript> <iframe src="https://www.google.com/recaptcha/api/noscript?k=6LeThAsTAAAAAKYRjSpA8XZ1s4izK65hYr9ulCiD" height="300" width="500" frameborder="0"> </iframe><br> <textarea name="recaptcha_challenge_field" rows="3" cols="40"> </textarea> <input type="hidden" name="recaptcha_response_field" value="manual_challenge"> </noscript>
及びZF2のバリのようである:
$recaptcha = new ZendService\ReCaptcha\ReCaptcha(PUB_KEY, PRIV_KEY);
$html = $recaptcha->getHTML();
$result = $recaptcha->verify($_POST['recaptcha_challenge_field'], $_POST['recaptcha_response_field']);
if (!$result->isValid()) {
// invalid
} else {
// valid
}
は、このようなリモートで検証することが可能である:https://jqueryvalidation.org/remote-method
私は以下のリモートPHPファイルで試してみると動作しません:
$recaptcha = new ZendService\ReCaptcha\ReCaptcha(PUB_KEY, PRIV_KEY);
$result = $recaptcha->verify($_GET['recaptcha_challenge_field'], $_GET['recaptcha_response_field']);
if (!$result->isValid()) {
echo json_encode(false);
} else {
echo json_encode(true);
}
とJS自体は次のとおりです。
$().ready(function() {
$("#contact").validate({
rules: {
recaptcha_response_field: {
required: true,
remote: "json.php"
}
}
});
});
は、それがすべてで可能であるか、私が何か間違ったことをしましたか?
を検証するために、この機能を試してみてください。'推奨されません(関数()準備ができました。代わりに '' $(ドキュメント).ready(関数()を使用しますまた、 'json.php'は正しい場所にあり、呼び出されていますか?コンソールでAjax呼び出しを調べていますか?また、' remote'の 'data'オプションを使用しない限り、あなたは'recaptcha_response_field'の値をあなたのPHPスクリプトに送るだけです – Sparky
同じフォームの他のフィールドは同じjson.phpでリモートで検証されるので、呼び出されたと見なします。 – user4271704
データオプションの使い方とrecaptcha_challlenge_fieldの送信方法え? @Sparky – user4271704