GoogleのreCaptcha V3をフォームメールに設置しました。
こちらのページに掲載のコードを参考にしました。
<head>〜</head>内に ### 下記のソースを組み込み<form>〜</form>内に下記のソースを入力しました。<script src="https://www.google.com/recaptcha/api.js?render=サイトキーを記述する"></script> <script> grecaptcha.ready(function () { grecaptcha.execute("サイトキーを記述する", {action: "sent"}).then(function(token) { var recaptchaResponse = document.getElementById("recaptchaResponse"); recaptchaResponse.value = token; }); }); </script>
<input type="hidden" name="recaptchaResponse" id="recaptchaResponse">
そして、submitボタンを押した先のメール送信のphpの頭に下記のソースを記載しました。
<?php if (isset($_POST["recaptchaResponse"]) && !empty($_POST["recaptchaResponse"])) { $secret = "シークレットキーを記述する"; $verifyResponse = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secret."&response=".$_POST["recaptchaResponse"]); $reCAPTCHA = json_decode($verifyResponse); if ($reCAPTCHA->success) { echo "認証成功"; } else { echo "認証エラー"; } } else { echo "エラーエラー"; } ?>
これでメールフォーム自体は認証成功が表示され送信できるのですが、
メールの『確認画面』、『設置者に届くメール』、『投稿者へ届く自動返信のメール』
いずれにも
03AERD8XohUkp6-PTfuRdnOOFvVvDmpArpvKOj1Oa9PqkLn_AK2yXFDNtqE8J2ipM6sJaArWX3heC97yT-aP-aGBgPYv4ATW8XuDMDqpnXr1SHICKykWpHV・・・
上記のようなレスポンスコードが表示されてしまうのですが、
これを表示させないようにする事は出来ませんでしょうか。
よろしくお願いいたします。
◆追記です
メールフォームのプログラムです。
(こちらのプログラムを利用させていただいています。)
検討ちがいの箇所でしたらすみません。
//送信メールにPOSTデータをセットする関数 function postToMail($arr){ global $hankaku,$hankaku_array; $resArray = ''; foreach($arr as $key => $val) { $out = ''; if(is_array($val)){ foreach($val as $key02 => $item){ //連結項目の処理 if(is_array($item)){ $out .= connect2val($item); }else{ $out .= $item . ', '; } } $out = rtrim($out,', '); }else{ $out = $val; }//チェックボックス(配列)追記ここまで if(get_magic_quotes_gpc()) { $out = stripslashes($out); } //全角→半角変換 if($hankaku == 1){ $out = zenkaku2hankaku($key,$out,$hankaku_array); } if($out != "confirm_submit" && $key != "httpReferer") { $resArray .= "【 ".h($key)." 】 ".h($out)."\n"; } } return $resArray; } //確認画面の入力内容出力用関数 function confirmOutput($arr){ global $hankaku,$hankaku_array,$useToken,$confirmDsp,$replaceStr; $html = ''; foreach($arr as $key => $val) { $out = ''; if(is_array($val)){ foreach($val as $key02 => $item){ //連結項目の処理 if(is_array($item)){ $out .= connect2val($item); }else{ $out .= $item . ', '; } } $out = rtrim($out,', '); }else{ $out = $val; }//チェックボックス(配列)追記ここまで if(get_magic_quotes_gpc()) { $out = stripslashes($out); } $out = nl2br(h($out));//※追記 改行コードを<br>タグに変換 $key = h($key); $out = str_replace($replaceStr['before'], $replaceStr['after'], $out);//機種依存文字の置換処理 //全角→半角変換 if($hankaku == 1){ $out = zenkaku2hankaku($key,$out,$hankaku_array); } $html .= "<tr><th>".$key."</th><td>".$out; $html .= '<input type="hidden" name="'.$key.'" value="'.str_replace(array("<br />","<br>"),"",$out).'" />'; $html .= "</td></tr>\n"; } //トークンをセット if($useToken == 1 && $confirmDsp == 1){ $token = sha1(uniqid(mt_rand(), true)); $_SESSION['mailform_token'] = $token; $html .= '<input type="hidden" name="mailform_token" value="'.$token.'" />'; } return $html; }