2015-05-06 30 views
1

我想創建一個聯繫表單,只是發送表單到我的電子郵件,我有幾個問題,當用戶提交表單時,它響應一個錯誤,但還有消息說它正確發送,但我沒有收到任何消息。錯誤,並沒有從聯繫表格中收到電子郵件

以下是錯誤

<b>Notice</b>: Undefined index: contactName1 in <b>/opt/lampp/htdocs/site/contact.php</b> on line <b>8</b><br /> 

如果它幫助我運行我的網站的本地服務器(LAMPP)上。

這裏是PHP

<?php 


include('scripts/connection.php'); 


$consubject= test_input($_POST['contactSubject1']); 
$conname= test_input($_POST['contactName1']); 
$conemail= test_input($_POST['contactEmail1']); 
$conmessage= test_input($_POST['contactMessage1']); 

function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 


$email_to = "[email protected]"; 






    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 

    if(!preg_match($email_exp,$conemail)) { 


    echo "The Email address ".$conemail." is not valid"; 

    }else{ 

     // create email headers 

     $email_message = "Form details below.\n\n"; 



     function clean_string($string) { 

      $bad = array("content-type","bcc:","to:","cc:","href"); 

      return str_replace($bad,"",$string); 

     } 



     $email_message .= "Name: ".clean_string($conname)."\n"; 

     $email_message .= "Message: ".clean_string($conmessage)."\n"; 


$from="From: $conname<$conemail>\r\nReturn-path: $conemail"; 
     $consubject="Message sent using your contact form"; 
     mail("[email protected]", $consubject, $email_message, $from); 


     // echo "Thanks for your message"; 

    } 


?> 

這裏是JavaScript

$("#contactSubmit").click(function(){ 
     var contactSubject = $("#contactSubject").val(); 
     var contactName = $("#contactName").val(); 
     var contactEmail = $("#contactEmail").val(); 
     var contactMessage = $("#contactMessage").val(); 

     // Returns successful data submission message when the entered information is stored in database. 
     var dataStringContact = 'contactSubject1='+ contactSubject + 'contactName1='+ contactName + '&contactEmail1='+ contactEmail + '&contactMessage1='+ contactMessage; 
     if(contactSubject===''||contactName===''||contactEmail===''||contactMessage==='') 
     { 
      alert("Please Fill All Fields"); 
     } 
     else 
     { 
      // AJAX Code To Submit Form. 
      $.ajax({ 
      type: "POST", 
      url: "contact.php", 
      data: dataStringContact, 
      cache: false, 
      success: function(resultContact){ 
       alert(resultContact); 
       document.forms['contactForm'].reset(); 
      } 
      }); 
     } 
     return false; 
    }); 

下面是HTML

<form name="contactForm"> 

            <input id="contactSubject" name="contactSubject" type="text"class="inputs" placeholder="Subject" /> 
            <br> 
            <input id="contactName" name="contactName" type="text"class="inputs" placeholder="Name" /> 
            <br> 
            <input id="contactEmail" name="contactEmail" type="text"class="inputs" placeholder="E-mail" /> 
            <br> 
            <textarea rows="4" cols="50" id="contactMessage" name="contactMessage" type="text" class="inputs" placeholder="Write your message..."></textarea> 

            <br> <br> 
            <input id="contactSubmit" type="button" name="contactSubmit" class="submitButton" value="Submit" /> 

           </form> 

感謝您的幫助

回答

1

你錯過&dataStringContact變量(在JavaScript代碼段,8號線):

var dataStringContact = 'contactSubject1='+ contactSubject + '&contactName1='+ contactName + '&contactEmail1='+ contactEmail + '&contactMessage1='+ contactMessage; 
                  ^
+0

三江源由我固定的錯誤,愚蠢的錯誤,但我仍然沒有收到任何電子郵件,即使它告訴我的消息已成功發送,任何想法爲什麼? –

+0

@AlHennessey:查看郵件和/或服務器日誌中的SPAM文件夾錯誤。 PHP腳本現在好了。 – panther

+0

四,檢查了垃圾郵件,沒有電子郵件,是因爲我從本地運行而不是真正的託管服務器? –

0

你必須先檢查是否有正確設置SMTP服務器。 如果您還沒有安裝任何東西,那麼我會建議你使用任何第三方庫發送電子郵件一樣PHPMailer PHPMailer

相關問題