フォームからのスパムが多く、自分でGoogle reCAPTCHAを設定してみようとサイトを参考にして、以下を</form>タグの後に記述しました。
ところがスパムの数は減らずGoogle cloudには「過去6週間にトークンをリクエストしていません」と出ます。
これは設定方法に問題があるという事だと思います。
<script src="https://www.google.com/recaptcha/api.js?render=6 …
<script>
var rc_form = document.getElementById('rc_form');
//フォーム要素にイベントハンドラを設定
rc_form.onsubmit = function(event) {
//デフォルトの動作(送信)を停止
event.preventDefault();
//トークンを取得
grecaptcha.ready(function() {
grecaptcha.execute('6LcdYmYkAAAAALxCMuxsHdGOXGidatwn27uI5R-o', {action: 'login'}).then(function(token) {
var token_input = document.createElement('input'); //input 要素を生成
token_input.type = 'hidden';
token_input.name = 'g-recaptcha-response';
token_input.value = token; //トークンを値に設定
rc_form.appendChild(token_input);
var action_input = document.createElement('input'); //input 要素を生成
action_input.type = 'hidden';
action_input.name = 'action';
action_input.value = 'login'; //アクション名を値に設定
rc_form.appendChild(action_input);
rc_form.submit(); //フォームを送信
});
});
}
</script>
どこに問題があるか、ご指導頂けないでしょうか?
ドメインの設定は大丈夫だと思われます。サイトに「Google reCAPTCHAで保護されています」のマークも付いています。
No.1ベストアンサー
- 回答日時:
問題がある可能性がある箇所を以下に示します。
reCAPTCHAのサイトキーが正しく設定されているかどうか確認してください。設定したサイトキーが間違っているとトークンが生成されません。設定したサイトキーが正しいかどうかは、Google reCAPTCHAのダッシュボードで確認できます。
JavaScriptコードの中にある{action: 'login'}のloginの部分を、フォームを保護したいページのURLに変更する必要があります。このアクション名をフォームを保護したいページのURLに合わせて変更しないと、トークンが正常に生成されません。
フォームのIDがrc_formであることを確認してください。もしIDが異なる場合、JavaScriptコードの中のgetElementByIdの引数も変更する必要があります。
以上の点を確認し、設定を見直してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iframe内のformをサブミットす...
-
perl で任意のフレーム内にペー...
-
Chromeの document.getElementB...
-
foreachの中で、リンクをPOST送...
-
検索フォームから、同時に複数...
-
submit関数の使い方
-
Cookieに保存されない
-
【UWSC】HTML内のある部分を抽...
-
3つのselectでURLパラメータを...
-
ボタン無しでフォーム内容送信
-
return trueとreturn falseの用...
-
正規表現で複数マッチ条件で悩...
-
クリックされた罫表セルの行番...
-
テキストエリアの行頭行末に指...
-
jQueryで特定のチェックボック...
-
onchangeイベントを強制的に発...
-
引数に数値、文字列の混在
-
jQueryで設定したイベントハン...
-
複数のプルダウンを1つにまとめ...
-
一つのチェックボックスのON/OF...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
1つのページにformを2つ設置。2...
-
複数のフォームを一括で自動送...
-
Cookieに保存されない
-
別ウィンドウへのsubmitの挙動...
-
submitした値を返したい
-
formのsubmitイベントの発生に...
-
javascriptでASPにデータを渡す
-
フォームが空欄の時にフォーム...
-
focus()が上手くいかない
-
iframe内のformをサブミットす...
-
POST時に要素を削除してからPOST
-
FormのonsubmitでJavaスクリプ...
-
1つのform内に2つのsubmitボタ...
-
JavascriptからSubmitして画面...
-
submitボタン押下後、disabled...
-
添付ファイルの未選択チェック方法
-
enterキーでのtab移動
-
ファイル選択と同時にアップロ...
-
別窓ウィンドウから親ウィンド...
-
Javascript IEで「識別子があり...
おすすめ情報
ありがとうございます!
サイトキーは確認しました。
login部分を変更とは
//トークンを取得
grecaptcha.ready(function() {
grecaptcha.execute('6LcdYmYkAAAAALxCMuxsHdGOXGidatwn27uI5R-o', {action: 'https://⚫︎⚫︎⚫︎⚫︎/'}).then(function(token) {
var token_input = document.createElement('input');
この部分だけで宜しかったでしょうか?
また、保護したいフォームのタグは
<form method="post" action="mail.php" class="form-horizontal">
この様になっていて、idが付いていないように思います。
id=“rc_form” など加筆すれば大丈夫ですか?
どうぞ宜しくお願いします。
少し見直しておりまして、、
最後の方にある
action_input.type = 'hidden';
action_input.name = 'action';
action_input.value = 'login';
↑こちらの'login'も、サイトURLに変更する必要があると言うことでしょうか?
理解が遅くて大変申し訳ありません。