2016-02-27 114 views
2

我是一名编码新手,所以我复制了联系表格并将其粘贴到我的网站。问题是它不能正常工作。当我按下发送按钮时,它说:“对不起丹尼尔,似乎我的邮件服务器没有响应,请稍后再试!”也许我包括在一个错误的方式(我用<include("mail/contact_me.php");></include(>)的PHP ... IDK 我粘贴HTML中的PHP的,因为我没有找到的代码片段PHP部分:d联系表格无法正常工作

$(function() { 
 

 
    $("#contactForm input,#contactForm textarea").jqBootstrapValidation({ 
 
    preventSubmit: true, 
 
    submitError: function($form, event, errors) { 
 
     // additional error messages or events 
 
    }, 
 
    submitSuccess: function($form, event) { 
 
     // Prevent spam click and default submit behaviour 
 
     $("#btnSubmit").attr("disabled", true); 
 
     event.preventDefault(); 
 

 
     // get values from FORM 
 
     var name = $("input#name").val(); 
 
     var email = $("input#email").val(); 
 
     var phone = $("input#phone").val(); 
 
     var message = $("textarea#message").val(); 
 
     var firstName = name; // For Success/Failure Message 
 
     // Check for white space in name for Success/Fail message 
 
     if (firstName.indexOf(' ') >= 0) { 
 
     firstName = name.split(' ').slice(0, -1).join(' '); 
 
     } 
 
     $.ajax({ 
 
     url: "././mail/contact_me.php", 
 
     type: "POST", 
 
     data: { 
 
      name: name, 
 
      phone: phone, 
 
      email: email, 
 
      message: message 
 
     }, 
 
     cache: false, 
 
     success: function() { 
 
      // Enable button & show success message 
 
      $("#btnSubmit").attr("disabled", false); 
 
      $('#success').html("<div class='alert alert-success'>"); 
 
      $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;") 
 
      .append("</button>"); 
 
      $('#success > .alert-success') 
 
      .append("<strong>Your message has been sent. </strong>"); 
 
      $('#success > .alert-success') 
 
      .append('</div>'); 
 

 
      //clear all fields 
 
      $('#contactForm').trigger("reset"); 
 
     }, 
 
     error: function() { 
 
      // Fail message 
 
      $('#success').html("<div class='alert alert-danger'>"); 
 
      $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;") 
 
      .append("</button>"); 
 
      $('#success > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!"); 
 
      $('#success > .alert-danger').append('</div>'); 
 
      //clear all fields 
 
      $('#contactForm').trigger("reset"); 
 
     }, 
 
     }) 
 
    }, 
 
    filter: function() { 
 
     return $(this).is(":visible"); 
 
    }, 
 
    }); 
 

 
    $("a[data-toggle=\"tab\"]").click(function(e) { 
 
    e.preventDefault(); 
 
    $(this).tab("show"); 
 
    }); 
 
}); 
 

 
// When clicking on Full hide fail/success boxes 
 
$('#name').focus(function() { 
 
    $('#success').html(''); 
 
});
<?php // Check for empty fields if(empty($_POST[ 'name']) || empty($_POST[ 'email']) || empty($_POST[ 'phone']) || empty($_POST[ 'message']) || !filter_var($_POST[ 'email'],FILTER_VALIDATE_EMAIL)) { echo "No arguments Provided!"; return false; } $name=$ 
 
_POST[ 'name']; $email_address=$ _POST[ 'email']; $phone=$ _POST[ 'phone']; $message=$ _POST[ 'message']; $to='[email protected]' ; $email_subject="Website Contact Form: $name" ; $email_body="You have received a new message from your website contact form.\n\n" 
 
. "Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message"; $headers="From: [email protected]\n" ; $headers .="Reply-To: $email_address" ; mail($to,$email_subject,$email_body,$headers); return true; ?> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="col-lg-6 col-lg-offset-3 text-center"> 
 
    <form name="sentMessage" id="contactForm" novalidate> 
 
    <div class="row control-group"> 
 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
     <label>Име</label> 
 
     <input type="text" class="form-control" placeholder="Име" id="name" required data-validation-required-message="Моля, въведете името си."> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
    </div> 
 
    <div class="row control-group"> 
 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
     <label>Email Адрес</label> 
 
     <input type="email" class="form-control" placeholder="Email" id="email" required data-validation-required-message="Моля, въведете email адреса си."> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
    </div> 
 
    <div class="row control-group"> 
 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
     <label>Телефон</label> 
 
     <input type="tel" class="form-control" placeholder="Телефон" id="phone" required data-validation-required-message="Моля, въведете телефонния си номер."> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
    </div> 
 
    <div class="row control-group"> 
 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
     <label>Съобщение</label> 
 
     <textarea rows="5" class="form-control" placeholder="Съобщение" id="message" required data-validation-required-message="Моля, въведете съобщението си."></textarea> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
    </div> 
 
    <br> 
 
    <div id="success"></div> 
 
    <div class="row"> 
 
     <div class="form-group col-xs-12"> 
 
     <button type="submit" value=" Submit " name="submit" class="btn btn-primary btn-xl">Send</button> 
 
     </div> 
 
    </div> 
 
    </form> 
 
</div>

+0

什么呢'<包括( “邮件/ contact_me.php”);> “是吗?它应该是'<?php include(“mail/contact_me.php”); ?>'。 – Lal

+0

我试过这样,但它仍然无法正常工作。 :/ – Daniel

回答

0

您目前的代码对于简单的联系表单来说似乎很复杂。我已经使用bootstrap 3框架为我的网站http://ddry.co.uk/contact_us.html创建了一个联系表单。我已经为您提供了一个JSFiddle所需的代码。它包括一个简单的反垃圾邮件过滤器,所以如果用户提供了不正确的答案,我有一个html重定向指示用户这一点,如果用户提供显示SUCCESS html页面的正确答案,它也有一个重定向。您需要将PHP文件上传到您的服务器,以便在测试过程中使用该文件。 (PHP代码在帖子的底部)。如果你需要任何帮助,只是问。希望这有助于:-)

https://jsfiddle.net/andydry1/bmh3f5ur/1/

------- PHP代码------

<?php 
    function isEmail($clientEmail) { 
    return filter_var($clientEmail, FILTER_VALIDATE_EMAIL);} 

if($_POST){ 
    // Enter the email where you want to receive the message 
    $myemail = 'your-email'; 
    $name = addslashes(trim($_POST['name'])); 
    $clientEmail = addslashes(trim($_POST['email'])); 
    $subject = addslashes(trim($_POST['phone'])); 
    $phone = addslashes(trim($_POST['phone'])); 
    $message = addslashes(trim($_POST['message'])); 
    $antispam = addslashes(trim($_POST['antispam'])); 
    if($antispam == '12' && isEmail($clientEmail) && $phone != '' && $message != '' ){ 
    $to = $myemail; 
    $email_subject = "Contact form submission: $name"; 
    $email_body = "You have received a new message. ". 
    " Here are the details:\n Name: $name \n ". 
    "Email: $clientEmail\n Message: \n $message\n Phone: $phone"; 
    $headers = "From: $myemail\n"; 
    $headers .= "Reply-To: $clientEmail"; 
    mail($to,$email_subject,$email_body,$headers); 
    echo json_encode($array); 
    header('Location: success.html'); } 
    else { 
    header('Location: failed-message.html'); } 
    }?> 

注意

不要忘记改变:

您的电子邮件地址

地点:success.html

地点:失败 - message.html

还包括所有相关的自举3 css文件

+1

是啊...只是要求用户的姓名,电子邮件,电话号码和他给我的信息/反馈。我想我会自己创建一个新的联系表单。 :) – Daniel

+0

是否可以这样做,而不是打开一个新的页面提交按钮会触发一个弹出窗口或可能出现一个div?我正在研究单页设计。 :) – Daniel

+0

你可以尝试这样的事情,需要多一点编码: http://www.websitecodetutorials.com/code/php/one-webpage-php-contact-form.php 这是源代码代码: http://www.websitecodetutorials.com/code/php/one-webpage-php-contact-form.txt 或者你也可以使用上面的代码,但改变你的html,所以它看起来相同的页面,但取而代之的是成功面板。 – Andy14