2016-04-14 8 views
0

私の会社のステージングサーバー上に構築されたWebサイトを持つクライアントのカスタムフォームを作成しました。フォームはステージングサーバー上で正しく動作していますが、クライアントのサーバーに移動したので、動作しなくなりました。 JS内部では、ajaxはapex-email.phpの絶対URLを呼び出してフォームを処理しています。私は、ステージングサーバー上のファイルの場所にURLを使用すると、動作します。サーバー上のどこに変更すれば動作しないので、それはajaxの問題だと思っていますか?ここに私のコードは次のとおりです。PHPフォームが新しいホストに投稿されない

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); 
       } 
      }); 
     } 
    }); 

頂点-email.php:

<?php 

$to = '[email protected]'; 


$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: [email protected] ' . "\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の問題と、それらが最後にどのように構成されているかを示します。あなたは、クロスオリジン・スクリプティングの問題を抱えている

+0

エラーはどこですか?エラーは何を言いますか?あなたは両方のPHPエラーログとコンソールのエラーをチェックしましたか? *それはうまくいかない*誰もあなたを助けない:p – skrilled

+0

@ skrilled - それは私が把握しようとしているものです。 :)それは私たちのサーバー上で完璧に動作しています。しかし、サーバ上でapex-email.phpを実行したいとは思われません。 –

+0

PHPのエラーログをチェックさせてください。 –

答えて

0

だから私は疑いのように、それはクロスオリジンとは何の関係もありませんでした。ヘッダーの設定方法と関係がありました。 $emailTime変数が送信されたときにフォームが壊れていました。明らかに、それはヘッダーのための適切なフォーマットではありません。 $emailmessageの一部として$emailTimeを含めると、フォームは正常に送信されました。

1

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のスクリプトの場所をWebサイトのローカルコピーに変更します。

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").html(d); 
      } 
     }); 
    } 

はまた、私は、フォームの周りにラップを追加し、空を追加します(おそらく最良の解決策)あなたのコードで遊んでしようとしました

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

しかし、それはクロスオリジンではありません。サーバー上のJSで、http://www.thepayrollcloud.com/wp-content/themes/apex/apex-email.phpをajax呼び出しのURLとして設定すると、動作しません。 *ローカルサイトからファイルを呼び出していますが、*私たちのサイトからapex-email.phpファイルを呼び出すように置き換えると、それは機能し、クロスオリジンです。 –

0

、私のようなdiv要素の内容を置き換えるために、そのより良いと思いますクラスの結果を持つdivが:(それは、同じサーバー上のファイルを呼んでいたので、関与全く交差がありません...)

<div class="form-wrap"> 
    <form id="apex-form" class="form-horizontal"> 

     //your form contents 

    </form> 
</div> 

<div class="result"></div> 
+0

ありがとうございます。これらのdivはすでにコードに含まれていますが、私は問題を解決するために必要と判断しなかったので、ここのスニペットには含めませんでした。しかし、良いコール。 :) –

関連する問題