フォームの 1 つに reCAPTCHA v3 を統合しました。onload では、トークンが生成され、右下隅に google captcha のロゴが表示されます。しかし、フォームを送信すると、コンソールに「エラー: reCAPTCHA クライアントが存在しません」というエラーが表示されます。また、「g-recaptcha-response」でデータが取得されず、$_POST["g-recaptcha-response"] が空のままになっているようです。
サンプルコードは次のとおりです。
<script type="text/javascript">
var ReCaptchaCallbackV3 = function() {
grecaptcha.ready(function() {
grecaptcha.execute("site_key").then(function(token) {
console.log("v3 Token: " + token);
});
});
};
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=ReCaptchaCallbackV3&render=site_key"></script>
フォームが送信されたときに「g-recaptcha-response」は生成されません。
Google reCaptchaについてはよくわかりません。彼らが提供するドキュメントに従い、適切な方法でサイトと秘密鍵を使用しました。
どこに問題があり、可能な解決策は何か教えてください。