Google Recaptcha(联系仍然发送)

时间:2016-04-25 04:08:51

标签: javascript php html recaptcha

我的联系页面存在问题,非常感谢有人可以帮我处理google recaptcha编码。

我已将所有脚本和密钥添加到我的html中。它显示在我的网站上,但即使我没有点击recaptcha,我的联系页面仍然会显示。我知道这是我的java脚本正在通过recaptcha。下面是html代码,javascript和php编码。希望有人能让我知道出了什么问题。

HTML代码:

27

Javascript(如果填写了所有字段,这是通过recaptcha的javascript):

<div class="col-md-6 col-md-6">
                    <h3 class="title">Contact Form</h3>
                    <p class="form-message"></p>
                    <div class="contact-form">
                        <!-- Form Begins -->
                        <form role="form" name="contactform" id="contactform" method="post" action="php/contact-form-recaptcha.php">
                            <div class="row">
                                <div class="col-md-6">
                                    <!-- Field 1 -->
                                    <div class="input-text form-group">
                                        <input type="text" name="contact_name" class="input-name form-control"
                                        placeholder="Full Name" />
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <!-- Field 2 -->
                                    <div class="input-email form-group">
                                        <input type="email" name="contact_email" class="input-email form-control"
                                        placeholder="Email" />
                                    </div>
                                </div>
                            </div>
                            <!-- Field 3 -->
                            <div class="input-email form-group">
                                <input type="text" name="contact_phone" class="input-phone form-control" placeholder="Phone" />
                            </div>
                            <!-- Field 4 -->
                            <div class="textarea-message form-group">
                                <textarea name="contact_message" class="textarea-message form-control" placeholder="Message"
                                rows="6"></textarea>
                            </div></DIV>
                            <!-- Captcha Box -->
                            <div class="g-recaptcha" data-sitekey="6************************************Z"></div>
                            <!-- Button -->
                            <button class="btn btn-default" type="submit">Send Now 
                            <i class="icon-paper-plane"></i></button>
                        </form>
                        <!-- Form Ends -->
                    </div>

PHP(contact-form-recaptcha.php):

/* ---------------------    
    Contact Form  
/* --------------------- */
simplecontactForm: function(){  
    if ( $( "#contactform" ).length !== 0 ) {
    $('#contactform').bootstrapValidator({
            container: 'tooltip',
            feedbackIcons: {
                valid: 'fa fa-check',
                warning: 'fa fa-user',
                invalid: 'fa fa-times',
                validating: 'fa fa-refresh'
            },
            fields: { 
                contact_name: {
                    validators: {
                        notEmpty: {
                            message: ''
                        }
                    }
                },
                contact_email: {
                    validators: {
                        notEmpty: {
                            message: ''
                        },
                        emailAddress: {
                            message: ''
                        },
                        regexp: {
                                regexp: '^[^@\\s]+@([^@\\s]+\\.)+[^@\\s]+$',
                                message: 'The value is not a valid email address'
                        }
                    }
                },
                contact_phone: {
                    validators: {
                        notEmpty: {
                            message: ''
                        }
                    }
                },
                contact_message: {
                    validators: {
                        notEmpty: {
                            message: ''
                        }
                    }
                },
            }
        })  
        .on('success.form.bv', function(e) {
            e.preventDefault();
            var $form        = $(e.target),
            validator    = $form.data('bootstrapValidator'),
            submitButton = validator.getSubmitButton();
            var form_data = $('#contactform').serialize();
            $.ajax({
                    type: "POST",
                    dataType: 'json',
                    url: "../php/contact-form-recaptcha.php",                   
                    data: form_data,
                    success: function(msg){                     
                        $('.form-message').html(msg.data);
                        $('.form-message').show();
                        submitButton.removeAttr("disabled");
                        resetForm($('#contactform'));                       
                    },
                    error: function(msg){}
             });
            return false;
        });
    }
    function resetForm($form) {

        $form.find(
                'input:text, input:password, input, input:file, select, textarea'
            )
            .val('');

        $form.find('input:radio, input:checkbox')
            .removeAttr('checked')
            .removeAttr('selected');
        $form.find('button[type=submit]')
            .attr("disabled", "disabled");

    }
},

请帮助我......万分感谢...

1 个答案:

答案 0 :(得分:2)

如果您想检查用户是否点击了“我不是机器人”复选框,您可以使用reCaptcha API提供的.getResponse()功能。

如果用户没有验证自己,它将返回一个空字符串,如下所示:

if(grecaptcha.getResponse() == "")
    alert("You can't proceed!");
else
    alert("Thank you");

如果用户已经验证了自己,则响应将是一个非常长的字符串。

有关API的更多信息,请访问此页面:reCaptcha Javascript API