2013-12-20 76 views
1

这里是邮件处理程序只发送邮件中收到的部分是实际消息缺少的部分是姓名和电话。没有收到所有在PHP邮件中的字段

<?php 
session_start(); 

    $email_to = "[email protected]"; 
    $name  = $_POST['name']; 
    $phone = $_POST['phone']; 
    $email = $_POST['email']; 
    $subject = $_POST['subject']; 
    $message = $_POST['message']; 

    $headers = "From: $email\r\n"; 
    $headers .= "Reply-To: $email\r\n"; 

    if(mail($email_to, $subject, $message, $headers)){ 
     echo "success";  
    } 
    else{ 
     echo "failed";  
    } 
?> 

这里是我已经检查了个遍HTML部分并无法弄清楚什么是错

<form id="contact" class="row" name="form1" method="post" action=""> 

       <div class="span2"> 
       <label>Name <span class="req">*</span></label> 
       <input type="text" class="full" name="name" id="name"/> 
       <div id="error_name" class="error">Please check your name</div> 
       </div> 

       <div class="span2"> 
       <label>Phone <span class="req">*</span></label> 
       <input type="text" class="full" name="phone" id="phone"/> 
       <div id="error_phone" class="error">Please check your phone</div> 
       </div> 

       <div class="span4"> 
       <label>Email <span class="req">*</span></label> 
       <input type="text" class="full" name="email" id="email"/> 
       <div id="error_email" class="error">Please check your email</div> 
       </div> 

       <div class="span8"> 
       <label>Message <span class="req">*</span></label> 
       <textarea cols="8" rows="10" name="message" id="message" class="full"></textarea> 
       <div id="error_message" class="error">Please check your message</div> 
       <div id="mail_success" class="success"> Thank you. Your message has been sent.</div> 
<div id="mail_failed" class="error">Error, email not sent</div> 

<p id="btnsubmit"><input type="submit" id="send" value="Send" class="btn btn-large"/></p>    
       </div>    
       </form> 

JS脚本---------------- ---

$(document).ready(function(){ 
    $("#send").click(function(){ 
     var name = $("#name").val(); 
     var phone = $("#phone").val(); 
    var email = $("#email").val(); 
    var message = $("#message").val(); 

    var error = false; 

    if (name.length == 0) { 
     var error = true; 
     $("#error_name").fadeIn(500); 
    } 
    else { 
     $("#error_name").fadeOut(500); 
    } 

    if (phone.length == 0) { 
     var error = true; 
     $("#error_phone").fadeIn(500); 
    } 
    else { 
     $("#error_phone").fadeOut(500); 
    } 

    if(email.length == 0 || email.indexOf("@") == "-1" || email.indexOf(".") == "-1"){ 
     var error = true; 
     $("#error_email").fadeIn(500); 
    } 
    else { 
     $("#error_email").fadeOut(500); 
    } 

    if(message.length == 0){ 
     var error = true; 
     $("#error_message").fadeIn(500); 
    }else{ 
     $("#error_message").fadeOut(500); 
    } 

    if(error == false){ 
     $("#send").attr({"disabled" : "true", "value" : "Loading..." }); 

     $.ajax({ 
     type: "POST", 
     url : "send.php",  
     data: "name=" + name + "&email=" + email + "&subject=" + "Website Enquiry" + "&message=" + message, 
     success: function(data){  
      if(data == 'success'){ 
      $("#btnsubmit").remove(); 
      $("#mail_success").fadeIn(500); 
      }else{ 
      $("#mail_failed").html(data).fadeIn(500); 
      $("#send").removeAttr("disabled").attr("value", "send"); 
      }  
     } 
     }); 
    } 
    return false;      
    });  
}); 
+1

你对'$ name'或'$ phone'没有做任何事情 - 也许你应该将它们连接到'$ message'? – andrewsi

+0

不确定你的意思? – Paul

+0

我的HTML标记中没有看到任何错误。这些值应该正确地得到'POST'。做'print_r($ _ POST);' - 你看到所有的字段和值是否正确? –

回答

3

很明显,你是缺少的部分!...你只需声明变量,但你没有将它们包括在邮件本身。

在这个例子中,我将$ name和$ phone添加到$ message body。

<?php 
session_start(); 

    $email_to = "[email protected]"; 
    $name  = $_POST['name']; 
    $phone = $_POST['phone']; 
    $email = $_POST['email']; 
    $subject = $_POST['subject']; 
    $message = $_POST['message'] . "\n"; 
    $message .= "Name: " . $name . "\n"; 
    $message .= "Phone: " . $phone; 

    $headers = "From: $email\r\n"; 
    $headers .= "Reply-To: $email\r\n"; 

    if(mail($email_to, $subject, $message, $headers)){ 
     echo "success";  
    } 
    else{ 
     echo "failed";  
    } 
?> 
+0

我会踢自己,如果这个工程,只是现在测试它是5谢谢 – Paul

+0

我建议你添加一些间距和/或新行到'$ message'中的变量,否则它可能会聚集起来。 I.e .:'你好,这是我的讯息Fred555-123-4567' –

+0

@ Fred-ii-我会把它作为保罗的一个练习。但既然你提到它...... – 2013-12-20 14:54:05

相关问题