简体   繁体   English

Google Recaptcha表单中的未定义变量?

[英]Undefined variables in form with google Recaptcha?

I am trying to get a form with google's Recaptcha to work. 我正在尝试使用Google的Recaptcha来工作。 Below is the code that I have so far. 下面是我到目前为止的代码。 What am I doing wrong?? 我究竟做错了什么?? When filling in the form and clicking the SEND button i get the notices below. 填写表格并单击“发送”按钮后,我得到以下通知。 It seems it has to do with this section of my PHP code: 看来这与我的PHP代码的这一部分有关:

          $to = 'eddyhilhorst@fotel.eu';
        $subject = 'A new contact form has been submitted';
        $htmlContent = "
            <h1>Contact request details</h1>
            <p>'.$first_name.' From:</b>".$gender." ".$first_name." ".$last_name."</p>
            <p><b>Company name: </b>".$company_name."</p>
            <p><b>Customer number: </b>".$customer_number."</p>
            <p><b>Email address: </b>".$email_address."</p>
            <p><b>Telephone number: </b>".$telephone_number."</p>
            <p><b>Message subject: </b>".$message_subject."</p>
            <p><b>Message: </b>".$message_content."</p>
        ";
        // Always set content-type when sending HTML email
        $headers = "MIME-Version: 1.0" . "\r\n";
        $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
        // More headers
        $headers .= 'From:'.$gender.' '.$first_name.' '.$last_name.' <'.$email.'>' . "\r\n";
        //send email
        @mail($to,$subject,$htmlContent,$headers);

Notice: Undefined variable: gender in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 26 注意:未定义的变量:第26行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的性别

Notice: Undefined variable: first_name in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 26 注意:未定义的变量:第26行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的first_name

Notice: Undefined variable: last_name in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 26 注意:未定义的变量:第26行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的last_name

Notice: Undefined variable: company_name in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 27 注意:未定义的变量:第27行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的company_name

Notice: Undefined variable: customer_number in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 28 注意:未定义的变量:第28行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的customer_number

Notice: Undefined variable: email_address in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 29 注意:未定义的变量:第29行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的email_address

Notice: Undefined variable: telephone_number in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 30 注意:未定义的变量:第30行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的phone_number

Notice: Undefined variable: message_subject in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 31 注意:未定义的变量:第31行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的message_subject

Notice: Undefined variable: message_content in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 32 注意:未定义的变量:第32行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的message_content

Notice: Undefined variable: gender in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 38 注意:未定义的变量:第38行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的性别

Notice: Undefined variable: first_name in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 38 注意:第38行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的未定义变量:first_name

Notice: Undefined variable: last_name in /home/sites/www.hildesign.nl/web/fotelcontactform/form.php on line 38 注意:第38行的/home/sites/www.hildesign.nl/web/fotelcontactform/form.php中的未定义变量:last_name

 autosize(document.querySelectorAll('#message_content')); var validator = $("#comment_form").validate({ ignore: [], rules: { gender: { required: true, }, first_name: { required: true, minlength: 2 }, last_name: { required: true, minlength: 2 }, email: { required: true, email: true, minlength: 4 }, email_again: { equalTo: '[name="entry[email]"]' }, message_subject: { required: true, minlength: 2 }, message: { required: true, minlength: 4 }, hiddenRecaptcha: { required: function() { if (grecaptcha.getResponse() == '') { return true; } else { return false; } } } } }); 
 html { text-align: center } body { display: inline-block; margin: 0px auto; text-align: left; } @font-face { font-family: Questrial; src: url(Questrial-Regular.otf); } div { font-family: Questrial; } input { font-family: Questrial; } text-area { font-family: Questrial; } span { font-family: Questrial; } p { font-family: Questrial; } form { font-family: Questrial; } #comment_form { width: 302px; } .label-radio { font-size: 0.8em; color: #d8e3e6; margin-right: 10px; font-family: questrial; } .inputfield3 { height: 33px; max-height: 33px; width: 302px; border-radius: 16px; margin-top: -10px; margin-bottom: 17px; padding: 0px 10px 0px 10px; overflow: hidden; border: none; background-color: #ffffff; display: inline-block !important; font-family: questrial; font-size: 0.8em; } .inputfield2 { height: 33px; max-height: 33px; width: 302px; border-radius: 16px; margin-top: -10px; margin-bottom: 0px; padding: 0px 10px 0px 10px; overflow: hidden; border: none; background-color: #ffffff; display: inline-block !important; font-family: questrial; font-size: 0.8em; } .textareafield { max-height: 350px; width: 302px; max-width: 302px; border-radius: 16px; margin-top: -10px; margin-bottom: 17px; padding: 10px 10px 10px 10px; overflow: hidden; border: none; background-color: #ffffff; display: inline-block !important; font-family: questrial; font-size: 0.8em; } #g-recaptcha-outer { width: 302px; height: 72px; display: flex; justify-content: center; align-items: center; overflow: hidden; border-radius: 16px; margin: -10px auto 20 auto; } #recaptcha-header { margin: 30px 0px -15px 0px; color: #d8e3e6; font-size: 1.0em; font-family: questrial; font-size: 0.8em; letter-spacing: -0.03em; } #contact_submit_button { display: block; text-decoration: none; margin: 10px auto 80px auto; width: 230px; height: 33px; padding: 0px 15px 0px 15px; background-color: rgb(0, 157, 233); color: #ffffff; border-radius: 16px; border: none; outline: none; font-family: questrial; font-size: 1em; } .requiredmark { margin: 0px 0px 0px 295px; display: inline-block; color: #d8e3e6; padding: 20px 0px 0px 0px; } .requiredmark2 { margin: -39px 0px 0px 295px; display: inline-block; color: #d8e3e6; padding: 20px 0px 0px 0px; } .requiredmark-radio { margin: 20px 0px 0px 0px; display: inline-block; color: #d8e3e6; font-family: questrial; } .error { display: none; } .error_show { color: red; } input.invalid, textarea.invalid { border: 1px solid red; } input.valid, textarea.valid {} label.error { margin-top: -10px; margin-bottom: 30px; float: none; color: red; vertical-align: top; display: block; font-family: Questrial; }​ #hiddenRecaptcha-error { margin-top: 65px!important; margin-bottom: 30px; float: none; color: red; vertical-align: top; display: block; font-family: Questrial; }​ .gender { border-radius: 16px; margin-top: 5px; margin-bottom: 7px; padding: 0px 10px 0px 10px; overflow: hidden; border: none; background-color: #ffffff; display: inline-block !important; font-family: questrial; font-size: 0.8em; } #gender-error { float: right; margin-bottom: 0px!important; margin-top: 20px!important } 
 <?php if(isset($_POST['submit']) && !empty($_POST['submit'])): if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])): //your site secret key $secret = 'MySecretKey_is_here'; //get verify response data $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']); $responseData = json_decode($verifyResponse); if($responseData->success): //contact form submission code $name = !empty($_POST['gender'])?$_POST['gender']:''; $email = !empty($_POST['first_name'])?$_POST['first_name']:''; $message = !empty($_POST['last_name'])?$_POST['last_name']:''; $name = !empty($_POST['company_name'])?$_POST['company_name']:''; $email = !empty($_POST['customer_number'])?$_POST['customer_number']:''; $message = !empty($_POST['email'])?$_POST['email']:''; $message = !empty($_POST['email_again'])?$_POST['email_again']:''; $name = !empty($_POST['telephone_number'])?$_POST['telephone_number']:''; $email = !empty($_POST['message_subject'])?$_POST['message_subject']:''; $message = !empty($_POST['message_content'])?$_POST['message_content']:''; $to = 'eddyhilhorst@fotel.eu'; $subject = 'A new contact form has been submitted'; $htmlContent = " <h1>Contact request details</h1> <p>'.$first_name.' From:</b>".$gender." ".$first_name." ".$last_name."</p> <p><b>Company name: </b>".$company_name."</p> <p><b>Customer number: </b>".$customer_number."</p> <p><b>Email address: </b>".$email_address."</p> <p><b>Telephone number: </b>".$telephone_number."</p> <p><b>Message subject: </b>".$message_subject."</p> <p><b>Message: </b>".$message_content."</p> "; // Always set content-type when sending HTML email $headers = "MIME-Version: 1.0" . "\\r\\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\\r\\n"; // More headers $headers .= 'From:'.$gender.' '.$first_name.' '.$last_name.' <'.$email.'>' . "\\r\\n"; //send email @mail($to,$subject,$htmlContent,$headers); $succMsg = 'Your contact request have submitted successfully.'; else: $errMsg = 'Robot verification failed, please try again.'; endif; else: $errMsg = 'Please click on the reCAPTCHA box.'; endif; else: $errMsg = ''; $succMsg = ''; endif; ?> <head> <script src='https://www.google.com/recaptcha/api.js'></script> <script src="https://assets.webshopapp.com/photographycoursetour/autosize.js?2" type="text/javascript"></script> <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.15.0/jquery.validate.js"></script> <script src="{{ 'iframeresizer-min.js' | url_asset }}" type="text/javascript"></script> <script src="https://assets.webshopapp.com/photographycoursetour/iframeresizer-contentwindow-min.js" type="text/javascript"></script> </head> <body> <form id="comment_form" action="form.php" method="post"> <div class="compulsoryfield"> <input class="gender" type="radio" name="gender" value="Mr" required><label class="label-radio">Mr.</label> <input class="gender" type="radio" name="gender" value="Ms" required><label class="label-radio">Ms.</label> <span class="requiredmark-radio">*</span> </div> <div class="compulsoryfield"><span class="requiredmark">*</span> <input id="first_name" name="first_name" class="inputfield3" type="text" placeholder="first name" required> </div> <div class="compulsoryfield"><span class="requiredmark2">*</span> <input id="last_name" name="last_name" class="inputfield3" type="text" placeholder="last name" required> </div> <input class="inputfield3" type="text" name="company_name" placeholder="company name (if applicable)"> <input class="inputfield3" type="text" name="customer_number" placeholder="customer number (on invoice if available)"> <br> <div class="compulsoryfield"><span class="requiredmark">*</span> <input id="email" name="email" class="inputfield3" type="email" placeholder="email address" required> </div> <div class="compulsoryfield"><span class="requiredmark2">*</span> <input id="email_again" name="emai_again" class="inputfield3" type="email" placeholder="re-enter email address to confirm" required></div> <input class="inputfield3" type="text" name="telephone_number" placeholder="telephone number (country code included)"> <br> <div class="compulsoryfield"><span class="requiredmark">*</span> <input id="message_subject" name="message_subject" class="inputfield3" type="text" placeholder="subject of message" required> </div> <div class="compulsoryfield"><span class="requiredmark2">*</span> <textarea id="message_content" name="message_content" class="textareafield" type="text" placeholder="add your message here" rows="8" cols="39" required></textarea></div> <p id="recaptcha-header">before sending, please show us you're real:</p> <div><span class="requiredmark">*</span> <div id="g-recaptcha-outer" class="compulsoryfield2"> <div class="g-recaptcha" data-sitekey="6LdBLBUUAAAAAI6eMRYRaA5B-EN_UDKGzwHtNMU1" required></div> </div> <input type="hidden" class="hiddenRecaptcha required" name="hiddenRecaptcha" id="hiddenRecaptcha"> <br><br> <input id="contact_submit_button" type="submit" name="submit" value="SEND" onclick="myFunction()"> </form> <div class="errMsg">PLease click on the Recaptcha box.</div> 

The problem is that you're trying to use values from variables that don't exist. 问题是您试图使用不存在的变量中的值。

It looks like you're assigning your POST ed values to the incorrect variables. 似乎您正在将POST ed值分配给错误的变量。 Look at this section of code - 看看这段代码-

//contact form submission code
  $name = !empty($_POST['gender'])?$_POST['gender']:'';
  $email = !empty($_POST['first_name'])?$_POST['first_name']:'';
  $message = !empty($_POST['last_name'])?$_POST['last_name']:'';
  $name = !empty($_POST['company_name'])?$_POST['company_name']:'';
  $email = !empty($_POST['customer_number'])?$_POST['customer_number']:'';
  $message = !empty($_POST['email'])?$_POST['email']:'';
  $message = !empty($_POST['email_again'])?$_POST['email_again']:'';
  $name = !empty($_POST['telephone_number'])?$_POST['telephone_number']:'';
  $email = !empty($_POST['message_subject'])?$_POST['message_subject']:'';
  $message = !empty($_POST['message_content'])?$_POST['message_content']:'';

  $to = 'eddyhilhorst@fotel.eu';
  $subject = 'A new contact form has been submitted';
  $htmlContent = "
    <h1>Contact request details</h1>
    <p>'.$first_name.' From:</b>".$gender." ".$first_name." ".$last_name."</p>
    <p><b>Company name: </b>".$company_name."</p>
    <p><b>Customer number: </b>".$customer_number."</p>
    <p><b>Email address: </b>".$email_address."</p>
    <p><b>Telephone number: </b>".$telephone_number."</p>
    <p><b>Message subject: </b>".$message_subject."</p>
    <p><b>Message: </b>".$message_content."</p>
  ";

You are assigning values for "gender" to the variable $name and the value for "first_name" to $email . 您正在将变量“ gender”的值分配给$name ,并将“ first_name”的值分配给$email If you update your variable names to match the POST ed fields your code should work. 如果您更新变量名以匹配POST ed字段,则代码应该起作用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM