我在一個聯系網站上工作,我想在那里有聯系表格。我希望它將數據發送到電子郵件,并且我希望它由 Google 的 recaptcha v3 進行檢查。這是我第二次嘗試。過去,我在沒有 recaptcha 的情況下成功完成了它?,F在,我使用了這個(https://codeforgeek.com/google-recaptcha-v3-tutorial/)教程,結果如下:表單下方的腳本 // when form is submit $('#myform').submit(function() { // we stoped it event.preventDefault(); var mail = $('#email').val(); var comment = $("#sprava").val(); // needs for recaptacha ready grecaptcha.ready(function() { // do request for recaptcha token // response is promise with passed token grecaptcha.execute('__SITE-KEY__', {action: 'create_comment'}).then(function(token) { // add token to form $('#myform').prepend('<input type="hidden" name="g-recaptcha-response" value="' + token + '">'); $.post("form.php",{mail: mail, comment: comment, token: token}, function(result) { if(result.success) { alert('Thanks for message') } else { alert('An error occured') } }); });; }); }); </script>html 表單字段的名稱是“email”、“vyber”、“sprava”表單.php<?php $mail;$comment;$captcha; $mail = filter_input(INPUT_POST, 'mail', FILTER_VALIDATE_EMAIL); $comment = filter_input(INPUT_POST, 'comment', FILTER_SANITIZE_STRING); $captcha = filter_input(INPUT_POST, 'token', FILTER_SANITIZE_STRING); } function email_sending(){ $webmaster_email = "[email protected]"; $sender_email= "[email protected]" ; $email_address = $_REQUEST['email'] ; $selection = $_REQUEST['vyber'] ; $message = $_REQUEST['sprava']; 問題不在 recaptcha 部分,但后來我收到電子郵件,其中數據丟失。(它只顯示變量名,不顯示實際值)。我可能認為這是因為在腳本中命名,因為我不確定在變量聲明中寫什么。我很高興收到有關此問題的任何意見。
通過recaptcha檢查后如何從HTML表單郵寄數據?
滄海一幻覺
2021-06-14 13:48:06