通过recaptcha检查后如何从HTML表单邮寄数据?

我在一个联系网站上工作,我想在那里有联系表格。我希望它将数据发送到电子邮件,并且我希望它由 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 部分,但后来我收到电子邮件,其中数据丢失。(它只显示变量名,不显示实际值)。我可能认为这是因为在脚本中命名,因为我不确定在变量声明中写什么。我很高兴收到有关此问题的任何意见。


沧海一幻觉
浏览 126回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript