我在一个联系网站上工作,我想在那里有联系表格。我希望它将数据发送到电子邮件,并且我希望它由 Google 的 recaptcha v3 进行检查。这是我第二次尝试。过去,我在没有 recaptcha 的情况下成功完成了它。现在,我使用了这个(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 = "bla@bla.com"; $sender_email= "blabla@bla.com" ; $email_address = $_REQUEST['email'] ; $selection = $_REQUEST['vyber'] ; $message = $_REQUEST['sprava']; 问题不在 recaptcha 部分,但后来我收到电子邮件,其中数据丢失。(它只显示变量名,不显示实际值)。我可能认为这是因为在脚本中命名,因为我不确定在变量声明中写什么。我很高兴收到有关此问题的任何意见。
添加回答
举报
0/150
提交
取消