Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将reCAPTCHA集成到现有的php联系人表单中?_Php_Html_Ajax_Forms - Fatal编程技术网

如何将reCAPTCHA集成到现有的php联系人表单中?

如何将reCAPTCHA集成到现有的php联系人表单中?,php,html,ajax,forms,Php,Html,Ajax,Forms,我正在尝试将reCAPTCHA与我现有的php联系人表单集成。有人能帮忙吗?我已经将相关代码添加到html表单中,我只是不知道如何调整mailer.php代码以执行必要的后端检查和处理表单数据。我是php新手,我使用的代码是从web上的一个站点改编而来的。表单还使用ajax和查询表单验证 <form id="form-ajax" class="form-ajax" method="post" action="mailer.php"> <input id="name" c

我正在尝试将reCAPTCHA与我现有的php联系人表单集成。有人能帮忙吗?我已经将相关代码添加到html表单中,我只是不知道如何调整mailer.php代码以执行必要的后端检查和处理表单数据。我是php新手,我使用的代码是从web上的一个站点改编而来的。表单还使用ajax和查询表单验证

<form id="form-ajax" class="form-ajax" method="post" action="mailer.php">
    <input id="name" class="form-name" type="text" name="name" placeholder="Name" required>
    <span class="error"></span>
    <input id="email" class="form-email" type="email" name="email" placeholder="Email Address" required>
    <span class="error"></span>
    <textarea id="message" class="form-message" name="message" placeholder="Message..." required></textarea>
    <span class="error"></span>
    <div class="g-recaptcha" data-sitekey="my-site-key"></div>
    <button class="form-submit" type="submit" name="submit">Send</button>
 </form>

发送

$(函数(){
//拿到表格
var form=$(“#form ajax”);
//获取消息div
var formMessages=$(“#表单消息”);
//为联系人窗体设置事件侦听器
$(表格)。提交(功能(事件){
//停止浏览器提交表单
event.preventDefault();
//序列化表单数据
var formData=$(form).serialize();
//使用AJAX提交表单
$.ajax({
键入:“POST”,
url:$(form.attr('action'),
数据:formData
})
.完成(功能(响应){
//确保formMessages div具有“success”类
$(formMessages).removeClass('error');
$(formMessages).addClass('success');
//设置消息文本
$(formMessages)。文本(响应);
//清除表格
$('#name').val('');
$('#email').val('');
$('#message').val('');
})
.失败(功能(数据){
//确保formMessages div具有“error”类
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
//设置消息文本
如果(data.responseText!=''){
$(formMessages).text(data.responseText);
}否则{
$(formMessages).text('Oops!发生错误,无法发送您的邮件');
}
});
});
});

    <script>
        $(function() {

          // Get the form
          var form = $('#form-ajax');

          // Get the messages div
          var formMessages = $('#form-messages');

          // Set up an event listener for the contact form
          $(form).submit(function(event) {

          // Stop the browser from submitting the form
          event.preventDefault();

          // Serialize the form data
          var formData = $(form).serialize();

          // Submit the form using AJAX
        $.ajax({
            type: 'POST',
            url: $(form).attr('action'),
            data: formData
        })
          .done(function(response) {
            // Make sure that the formMessages div has the 'success' class
            $(formMessages).removeClass('error');
            $(formMessages).addClass('success');

            // Set the message text
            $(formMessages).text(response);

            // Clear the form
            $('#name').val('');
            $('#email').val('');
            $('#message').val('');
        })
        .fail(function(data) {
            // Make sure that the formMessages div has the 'error' class
            $(formMessages).removeClass('success');
            $(formMessages).addClass('error');

            // Set the message text
            if (data.responseText !== '') {
                $(formMessages).text(data.responseText);
            } else {
                $(formMessages).text('Oops! An error occured and your message could not be sent.');
            }
        });

      });

    });
  </script>
<?php

    // Only process POST requests
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        // Get the form fields and remove whitespace
        $name = strip_tags(trim($_POST["name"]));
        $name = str_replace(array("\r","\n"),array(" "," "),$name);
        $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
        $message = trim($_POST["message"]);

        // Check that data was sent to the mailer
        if ( empty($name) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
            // Set a 400 (bad request) response code and exit
            http_response_code(400);
            echo "Oops! There was a problem with your submission. Please complete the form and try again.";
            exit;
        }

        // Set the recipient email address
        $recipient = "email@example.com";

        // Set the email subject
        $subject = "New contact from $name";

        // Build the email content.
        $email_content = "Name: $name\n";
        $email_content .= "Email: $email\n\n";
        $email_content .= "Message:\n$message\n";

        // Build the email headers.
        $email_headers = "From: $name <$email>";

        // Send the email.
        if (mail($recipient, $subject, $email_content, $email_headers)) {
            // Set a 200 (okay) response code.
            http_response_code(200);
            echo "Thank you! Your message has been sent.";
        } else {
            // Set a 500 (internal server error) response code.
            http_response_code(500);
            echo "Oops! Something went wrong and we couldn't send your message.";
        }

    } else {
        // Not a POST request, set a 403 (forbidden) response code.
        http_response_code(403);
        echo "There was a problem with your submission, please try again.";
    }

?>