PHP表单未在新主机上提交(PHP form not submitting on new host)

编程入门 行业动态 更新时间:2024-10-25 18:36:10
PHP表单未在新主机上提交(PHP form not submitting on new host)

我为客户创建了一个自定义表单,该客户的网站是在我公司的登台服务器上构建的。 表单在我们的登台服务器上正常工作,但现在我将其移动到客户端的服务器上,它已不再有效。 在JS内部,ajax调用apex-email.php的绝对URL来处理表单。 我确实缩小了,如果我使用URL到我们的登台服务器上文件的位置,它可以工作。 如果我将它更改为它在服务器上的位置,它不起作用,所以我假设它是一个ajax问题? 这是我的代码:

HTML:

<form id="apex-form" class="form-horizontal"> <div class="form-group col-md-6"> <label class="col-sm-12" for="firstname">First name: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="firstname" id="firstname"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="lastname">Last name: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="lastname" id="lastname"> </div> </div> <div class="clearfix"></div> <div class="form-group col-md-6"> <label class="col-sm-12" for="name">Email: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="email" name="email" id="email"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="phone">Phone: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="tel" name="phone" id="phone"> </div> </div> <div class="clearfix"></div> <div class="form-group col-md-6"> <label class="col-sm-12" for="company">Company Name: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="company" id="company"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="website">Website URL:</label> <div class="col-sm-12"> <input class="form-control" type="text" name="website" id="website"> </div> </div> <div class="clearfix"></div> <div class="form-group col-md-12"> <label class="col-sm-12" for="address">Street Address: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="address" id="address"> </div> </div> <div class="form-group col-md-12"> <label class="col-sm-12" for="addresstwo">Address Line 2:</label> <div class="col-sm-12"> <input class="form-control" type="text" name="addresstwo" id="addresstwo"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="city">City: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="city" id="city"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="state">State: <span class="red-star">*</span></label> <div class="col-sm-12"> <select class="form-control validate[required]" name="state" id="state"> <option value="">Please Select One</option> <option value="AL">Alabama</option> <option value="AK">Alaska</option> <option value="AZ">Arizona</option> <option value="AR">Arkansas</option> <option value="CA">California</option> <option value="CO">Colorado</option> <option value="CT">Connecticut</option> <option value="DE">Delaware</option> <option value="DC">District Of Columbia</option> <option value="FL">Florida</option> <option value="GA">Georgia</option> <option value="HI">Hawaii</option> <option value="ID">Idaho</option> <option value="IL">Illinois</option> <option value="IN">Indiana</option> <option value="IA">Iowa</option> <option value="KS">Kansas</option> <option value="KY">Kentucky</option> <option value="LA">Louisiana</option> <option value="ME">Maine</option> <option value="MD">Maryland</option> <option value="MA">Massachusetts</option> <option value="MI">Michigan</option> <option value="MN">Minnesota</option> <option value="MS">Mississippi</option> <option value="MO">Missouri</option> <option value="MT">Montana</option> <option value="NE">Nebraska</option> <option value="NV">Nevada</option> <option value="NH">New Hampshire</option> <option value="NJ">New Jersey</option> <option value="NM">New Mexico</option> <option value="NY">New York</option> <option value="NC">North Carolina</option> <option value="ND">North Dakota</option> <option value="OH">Ohio</option> <option value="OK">Oklahoma</option> <option value="OR">Oregon</option> <option value="PA">Pennsylvania</option> <option value="RI">Rhode Island</option> <option value="SC">South Carolina</option> <option value="SD">South Dakota</option> <option value="TN">Tennessee</option> <option value="TX">Texas</option> <option value="UT">Utah</option> <option value="VT">Vermont</option> <option value="VA">Virginia</option> <option value="WA">Washington</option> <option value="WV">West Virginia</option> <option value="WI">Wisconsin</option> <option value="WY">Wyoming</option> </select> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="zip">Zip: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="zip" id="zip"> </div> </div> <div class="clearfix"></div> <hr/> <div class="form-group col-md-6"> <label class="col-sm-12" for="numbercustomers">Number of Customers: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="number" name="numbercustomers" id="numbercustomers"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="averageemp">Average Number of Employees per Customer: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="number" name="averageemp" id="averageemp"> </div> </div> <div class="clearfix"></div> <div class="form-group col-md-6"> <label class="col-sm-12" for="numberchecks">Number of Checks Per Month: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="number" name="numberchecks" id="numberchecks"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="currentsoftware">Current Payroll Software: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="currentsoftware" id="currentsoftware"> </div> </div> <div class="clearfix"></div> <div class="form-group col-md-12"> <label class="col-sm-12" for="howhear">How did you hear about us? <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="howhear" id="howhear"> </div> </div> <div class="form-group col-md-12"><label class="col-sm-12" for="addcomments">Additional Comments:</label><br/> <div class="col-sm-12"><textarea name="addcomments" id="addcomments" class="form-control col-sm-12 textarea" rows="3"></textarea></div> </div> <div class="form-group col-md-12"><button type="submit" name="send" class="free-button btn btn-default" id="submitBtn">Submit</button></div> </form>

JS:

$('#apex-form').validate({ // initialize the plugin rules: { firstname: { required: true }, lastname: { required: true }, email: { required: true, email: true }, phone: { required: true }, company: { required: true }, address: { required: true }, city: { required: true }, state: { required: true }, zip: { required: true }, numbercustomers: { required: true }, averageemp: { required: true }, numberchecks: { required: true }, currentsoftware: { required: true }, howhear: { required: true } }, submitHandler: function(form) { var data = $(form).serialize(); $.ajax({ type: 'POST', url: 'http://mycompanysstagingsite.com/wp-content/themes/apex/apex-email.php', data: $("#apex-form").serialize(), success: function(d){ $(".form-wrap").hide(); $(".result").show(d); } }); } });

APEX-email.php:

<?php $to = 'example@email.com'; $subject = 'Example Subject'; date_default_timezone_set("America/New_York"); $emailTime = date('Y-m-d H:i:s'); $firstname = 'First Name: ' . $_POST['firstname'] . "\r\n"; $lastname = 'Last Name: ' . $_POST['lastname'] . "\r\n"; $email = 'Email: ' . $_POST['email'] . "\r\n"; $phone = 'Main Phone: ' . $_POST['phone'] . "\r\n"; $company = 'Company Name: ' . $_POST['company'] . "\r\n"; $website = 'Website: ' . $_POST['website'] . "\r\n"; $address = 'Address 1: ' . $_POST['address'] . "\r\n"; $addresstwo = 'Address 2: ' . $_POST['addresstwo'] . "\r\n"; $city = 'City: ' . $_POST['city'] . "\r\n"; $state = 'State: ' . $_POST['state'] . "\r\n"; $zip = 'Zip: ' . $_POST['zip'] . "\r\n"; $referral = 'Referral: Apex Contact Info Web Form' . "\r\n"; $numbercustomers = '# of Clients: ' . $_POST['numbercustomers'] . "\r\n"; $averageemp = 'Active # of EEs: ' . $_POST['averageemp'] . "\r\n"; $numberchecks = '# of Checks/Month: ' . $_POST['numberchecks'] . "\r\n"; $currentsoftware = 'Current Software: ' . $_POST['currentsoftware'] . "\r\n"; $addcomments = "Prospect's Comments: " . $_POST['addcomments']; $emailmessage = $firstname .' '. $lastname .' '. $phone .' ' . $email .' ' . $company .' ' . $website .' ' . $address .' ' . $addresstwo .' ' . $city .' ' . $state .' ' . $zip .' ' . $referral .' ' . $numbercustomers .' ' . $averageemp .' ' . $numberchecks .' ' . $currentsoftware .' ' . $addcomments; $headers = 'From: example@email.com ' . "\r\n"; // From email $headers .= 'Cc: ' . "\r\n"; $headers .= 'Bcc: ' . "\r\n"; $headers .= 'Return-Path : ' . "\r\n"; $headers .= 'X-Mailer: PHP' . "\r\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-Type: text/html; charset=iso-8859-1' . "\r\n"; mail($to, $subject, $emailTime, $emailmessage, $headers); ?>

编辑:我正在调查这是一个可能的GoDaddy问题,以及他们如何配置他们的东西。

I created a custom form for a client whose website was built on my company's staging server. The form is working correctly on our staging server, but now that I moved it over to the client's server, it's no longer working. Inside the JS, ajax is calling an absolute URL for apex-email.php to process the form. I did narrow down that if I use the URL to where the file is located on our staging server, it works. If I change it to where it's located on their server, it doesn't work, so I'm assuming it's an ajax issue? Here's my code:

HTML:

<form id="apex-form" class="form-horizontal"> <div class="form-group col-md-6"> <label class="col-sm-12" for="firstname">First name: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="firstname" id="firstname"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="lastname">Last name: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="lastname" id="lastname"> </div> </div> <div class="clearfix"></div> <div class="form-group col-md-6"> <label class="col-sm-12" for="name">Email: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="email" name="email" id="email"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="phone">Phone: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="tel" name="phone" id="phone"> </div> </div> <div class="clearfix"></div> <div class="form-group col-md-6"> <label class="col-sm-12" for="company">Company Name: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="company" id="company"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="website">Website URL:</label> <div class="col-sm-12"> <input class="form-control" type="text" name="website" id="website"> </div> </div> <div class="clearfix"></div> <div class="form-group col-md-12"> <label class="col-sm-12" for="address">Street Address: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="address" id="address"> </div> </div> <div class="form-group col-md-12"> <label class="col-sm-12" for="addresstwo">Address Line 2:</label> <div class="col-sm-12"> <input class="form-control" type="text" name="addresstwo" id="addresstwo"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="city">City: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="city" id="city"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="state">State: <span class="red-star">*</span></label> <div class="col-sm-12"> <select class="form-control validate[required]" name="state" id="state"> <option value="">Please Select One</option> <option value="AL">Alabama</option> <option value="AK">Alaska</option> <option value="AZ">Arizona</option> <option value="AR">Arkansas</option> <option value="CA">California</option> <option value="CO">Colorado</option> <option value="CT">Connecticut</option> <option value="DE">Delaware</option> <option value="DC">District Of Columbia</option> <option value="FL">Florida</option> <option value="GA">Georgia</option> <option value="HI">Hawaii</option> <option value="ID">Idaho</option> <option value="IL">Illinois</option> <option value="IN">Indiana</option> <option value="IA">Iowa</option> <option value="KS">Kansas</option> <option value="KY">Kentucky</option> <option value="LA">Louisiana</option> <option value="ME">Maine</option> <option value="MD">Maryland</option> <option value="MA">Massachusetts</option> <option value="MI">Michigan</option> <option value="MN">Minnesota</option> <option value="MS">Mississippi</option> <option value="MO">Missouri</option> <option value="MT">Montana</option> <option value="NE">Nebraska</option> <option value="NV">Nevada</option> <option value="NH">New Hampshire</option> <option value="NJ">New Jersey</option> <option value="NM">New Mexico</option> <option value="NY">New York</option> <option value="NC">North Carolina</option> <option value="ND">North Dakota</option> <option value="OH">Ohio</option> <option value="OK">Oklahoma</option> <option value="OR">Oregon</option> <option value="PA">Pennsylvania</option> <option value="RI">Rhode Island</option> <option value="SC">South Carolina</option> <option value="SD">South Dakota</option> <option value="TN">Tennessee</option> <option value="TX">Texas</option> <option value="UT">Utah</option> <option value="VT">Vermont</option> <option value="VA">Virginia</option> <option value="WA">Washington</option> <option value="WV">West Virginia</option> <option value="WI">Wisconsin</option> <option value="WY">Wyoming</option> </select> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="zip">Zip: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="zip" id="zip"> </div> </div> <div class="clearfix"></div> <hr/> <div class="form-group col-md-6"> <label class="col-sm-12" for="numbercustomers">Number of Customers: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="number" name="numbercustomers" id="numbercustomers"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="averageemp">Average Number of Employees per Customer: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="number" name="averageemp" id="averageemp"> </div> </div> <div class="clearfix"></div> <div class="form-group col-md-6"> <label class="col-sm-12" for="numberchecks">Number of Checks Per Month: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="number" name="numberchecks" id="numberchecks"> </div> </div> <div class="form-group col-md-6"> <label class="col-sm-12" for="currentsoftware">Current Payroll Software: <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="currentsoftware" id="currentsoftware"> </div> </div> <div class="clearfix"></div> <div class="form-group col-md-12"> <label class="col-sm-12" for="howhear">How did you hear about us? <span class="red-star">*</span></label> <div class="col-sm-12"> <input class="form-control" type="text" name="howhear" id="howhear"> </div> </div> <div class="form-group col-md-12"><label class="col-sm-12" for="addcomments">Additional Comments:</label><br/> <div class="col-sm-12"><textarea name="addcomments" id="addcomments" class="form-control col-sm-12 textarea" rows="3"></textarea></div> </div> <div class="form-group col-md-12"><button type="submit" name="send" class="free-button btn btn-default" id="submitBtn">Submit</button></div> </form>

JS:

$('#apex-form').validate({ // initialize the plugin rules: { firstname: { required: true }, lastname: { required: true }, email: { required: true, email: true }, phone: { required: true }, company: { required: true }, address: { required: true }, city: { required: true }, state: { required: true }, zip: { required: true }, numbercustomers: { required: true }, averageemp: { required: true }, numberchecks: { required: true }, currentsoftware: { required: true }, howhear: { required: true } }, submitHandler: function(form) { var data = $(form).serialize(); $.ajax({ type: 'POST', url: 'http://mycompanysstagingsite.com/wp-content/themes/apex/apex-email.php', data: $("#apex-form").serialize(), success: function(d){ $(".form-wrap").hide(); $(".result").show(d); } }); } });

apex-email.php:

<?php $to = 'example@email.com'; $subject = 'Example Subject'; date_default_timezone_set("America/New_York"); $emailTime = date('Y-m-d H:i:s'); $firstname = 'First Name: ' . $_POST['firstname'] . "\r\n"; $lastname = 'Last Name: ' . $_POST['lastname'] . "\r\n"; $email = 'Email: ' . $_POST['email'] . "\r\n"; $phone = 'Main Phone: ' . $_POST['phone'] . "\r\n"; $company = 'Company Name: ' . $_POST['company'] . "\r\n"; $website = 'Website: ' . $_POST['website'] . "\r\n"; $address = 'Address 1: ' . $_POST['address'] . "\r\n"; $addresstwo = 'Address 2: ' . $_POST['addresstwo'] . "\r\n"; $city = 'City: ' . $_POST['city'] . "\r\n"; $state = 'State: ' . $_POST['state'] . "\r\n"; $zip = 'Zip: ' . $_POST['zip'] . "\r\n"; $referral = 'Referral: Apex Contact Info Web Form' . "\r\n"; $numbercustomers = '# of Clients: ' . $_POST['numbercustomers'] . "\r\n"; $averageemp = 'Active # of EEs: ' . $_POST['averageemp'] . "\r\n"; $numberchecks = '# of Checks/Month: ' . $_POST['numberchecks'] . "\r\n"; $currentsoftware = 'Current Software: ' . $_POST['currentsoftware'] . "\r\n"; $addcomments = "Prospect's Comments: " . $_POST['addcomments']; $emailmessage = $firstname .' '. $lastname .' '. $phone .' ' . $email .' ' . $company .' ' . $website .' ' . $address .' ' . $addresstwo .' ' . $city .' ' . $state .' ' . $zip .' ' . $referral .' ' . $numbercustomers .' ' . $averageemp .' ' . $numberchecks .' ' . $currentsoftware .' ' . $addcomments; $headers = 'From: example@email.com ' . "\r\n"; // From email $headers .= 'Cc: ' . "\r\n"; $headers .= 'Bcc: ' . "\r\n"; $headers .= 'Return-Path : ' . "\r\n"; $headers .= 'X-Mailer: PHP' . "\r\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-Type: text/html; charset=iso-8859-1' . "\r\n"; mail($to, $subject, $emailTime, $emailmessage, $headers); ?>

EDIT: I'm looking into this being a possible GoDaddy issue and how they have things configured on their end.

最满意答案

您有跨源脚本问题:

XMLHttpRequest cannot load http://inwardstaging.com/apex2/wp-content/themes/apex/apex-email.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://www.thepayrollcloud.com' is therefore not allowed access.

您需要将交叉原点友好标题添加到apex-email.php脚本,即:

<?php header("Access-Control-Allow-Origin: www.thepayrollcloud.com");

或者,如果您不担心访问它的任何站点的安全性:

<?php header("Access-Control-Allow-Origin: *");

或者更改www.thepayrollcloud.com上脚本的位置,以指向网站本地的副本,如果它具有相同的文件。 (可能最好的解决方案

url: '/wp-content/themes/apex/apex-email.php',

So like I suspected, it had nothing to do with Cross Origin (because it was calling a file on the same server... there's no crossing involved). It had to do with how the headers were set up. The $emailTime variable was causing the form to break when being submitted. Apparently, that's not a proper format for headers. When I included $emailTime as part of the $emailmessage, the form submitted just fine.

更多推荐

本文发布于:2023-07-04 10:52:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1023519.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:表单   主机   PHP   host   submitting

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!