2017-04-06 14 views
0

由於一些奇怪的原因,商業輸入值不會提交給電子郵件......它總是空白..有人可以告訴我什麼是錯的嗎?謝謝!PHP表單不會傳遞值給任何人發郵件?

<?php 
// Check for empty fields 
if(isset(empty($_POST['submit'])  || 
    empty($_POST['email'])  || 
    empty($_POST['phone'])  || 
    empty($_POST['business']) || 
    empty($_POST['message']) || 
    !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 
    { 
    echo "No arguments Provided!"; 
    return false; 
    } 

$name = strip_tags(htmlspecialchars($_POST['name'])); 
$email_address = strip_tags(htmlspecialchars($_POST['email'])); 
$phone = strip_tags(htmlspecialchars($_POST['phone'])); 
$business = strip_tags(htmlspecialchars($_POST['business'])); 
$message = strip_tags(htmlspecialchars($_POST['message'])); 

// Create the email and send the message 
$to = '[email protected]'; // Add your email address inbetween the '' replacing [email protected] - This is where the form will send a message to. 
$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\nBusiness: $business\n\nMessage:\n$message"; 
$headers = "From: [email protected]\n"; // This is the email address the generated message will be from. We recommend using something like [email protected] 
$headers .= "Reply-To: $email_address"; 
mail($to,$email_subject,$email_body,$headers); 
return true;   
?> 

這是我的HTML:

<form name="sentMessage" id="contactForm" novalidate method="post"> 
        <div class="row"> 
         <div class="col-md-6"> 
          <div class="form-group"> 
           <input type="text" class="form-control" placeholder="Your Name *" id="name" required data-validation-required-message="Please enter your name."> 
           <p class="help-block text-danger"></p> 
          </div> 
          <div class="form-group"> 
           <input type="email" class="form-control" placeholder="Your Email *" id="email" required data-validation-required-message="Please enter your email address."> 
           <p class="help-block text-danger"></p> 
          </div> 
          <div class="form-group"> 
           <input type="tel" class="form-control" placeholder="Your Phone *" id="phone" required data-validation-required-message="Please enter your phone number."> 
           <p class="help-block text-danger"></p> 
          </div> 
          <div class="form-group"> 
           <input type="text" class="form-control" placeholder="Your Business Name *" id="business" required data-validation-required-message="Please enter your business name."> 
           <p class="help-block text-danger"></p> 
          </div> 
          <div class="col-md-6"> 
           <div class="form-group"> 
            <textarea class="form-control" placeholder="Your Message *" id="message" required data-validation-required-message="Please enter a message."></textarea> 
            <p class="help-block text-danger"></p> 
           </div> 
          </div> 
         <div class="clearfix"></div> 
         <div class="col-lg-12 text-center"> 
          <div id="success"></div> 
          <button type="submit" name="submit" class="btn btn-xl">Send Message</button> 
         </div> 
        </div> 
       </form> 

出於某種原因,當我把那個 「空($ _ POST [ '業務'])||」在那裏,沒有任何東西進入電子郵件。當我刪除「類型=」文本」從我的生意HTML部分的電子郵件經過,但沒有作爲一種價值,它會只是說業務:和空白....

+0

需要燒開的形式,希望其使用POST得不到 – nogad

+0

您可以發送的形式? –

+0

PHP錯誤日誌中有什麼? – mkaatman

回答

0

你沒有定義method="post"

<form name="sentMessage" id="contactForm" novalidate> 

所以它會像

<form name="sentMessage" id="contactForm" novalidate method="post"> 

給名

<button type="submit" name ="submit" class="btn btn-xl">Send Message</button>

所以,你的代碼將

if(isset($_POST['submit']){ 
//set your code here 
} 
+0

做完你發佈的內容後,顯示一條消息,說郵件服務不是迴應,請稍後再點擊提交按鈕。 –

+0

我已經更新了PHP和HTML代碼以適應您的更改。 –

+0

提交代碼現在正在工作,另一個問題是在您的PHP郵件代碼中,我建議您可以使用電子郵件插件來處理您的郵件服務 PHP郵件程序 - https://github.com/PHPMailer/PHPMailer –

0

它總是空的,因爲在你的輸入形式沒有name=""name=""表單提交後引用表單數據。添加name=""您輸入這樣的..

<?php 
// Check for empty fields 
if(isset($_POST['submit'])) { 
if(trim($_POST['email'])== '' || trim($_POST['phone'])== '' || trim($_POST['business'])== '' || trim($_POST['message'])== '' || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 
{ 
echo "No arguments Provided!"; 
}else{ 
$name = strip_tags(htmlspecialchars($_POST['name'])); 
$email_address = strip_tags(htmlspecialchars($_POST['email'])); 
$phone = strip_tags(htmlspecialchars($_POST['phone'])); 
$business = strip_tags(htmlspecialchars($_POST['business'])); 
$message = strip_tags(htmlspecialchars($_POST['message'])); 

// Create the email and send the message 
$to = '[email protected]'; // Add your email address inbetween the '' replacing [email protected] - This is where the form will send a message to. 
$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\nBusiness: $business\n\nMessage:\n$message"; 
$headers = "From: [email protected]\n"; // This is the email address the generated message will be from. We recommend using something like [email protected] 
$headers .= "Reply-To: $email_address"; 
mail($to,$email_subject,$email_body,$headers); 
} 
} 
?> 
<html> 
<head> 
</head>  
<body> 
    <form name="contactForm" novalidate method="POST"> 
    <div class="row"> 
     <div class="col-md-6"> 
      <div class="form-group"> 
       <input type="text" class="form-control" placeholder="Your Name *" name="name" id="name" data-validation-required-message="Please enter your name." required> 
       <p class="help-block text-danger"></p> 
      </div> 
      <div class="form-group"> 
       <input type="email" class="form-control" placeholder="Your Email *" name="email" id="email" data-validation-required-message="Please enter your email address." required> 
       <p class="help-block text-danger"></p> 
      </div> 
      <div class="form-group"> 
       <input type="tel" class="form-control" placeholder="Your Phone *" name="phone" id="phone" data-validation-required-message="Please enter your phone number." required> 
       <p class="help-block text-danger"></p> 
      </div> 
      <div class="form-group"> 
       <input type="text" class="form-control" placeholder="Your Business Name *" name="business" id="business" data-validation-required-message="Please enter your business name." required> 
       <p class="help-block text-danger"></p> 
      </div> 
      <div class="col-md-6"> 
       <div class="form-group"> 
        <textarea class="form-control" placeholder="Your Message *" name="message" id="message" data-validation-required-message="Please enter a message." required></textarea> 
        <p class="help-block text-danger"></p> 
       </div> 
      </div> 
     <div class="clearfix"></div> 
     <div class="col-lg-12 text-center"> 
      <div name="success"></div> 
      <button type="submit" name ="submit" class="btn btn-xl">Send Message</button> 
    </form> 
</body> 
</html> 
+0

謝謝,但我可以問一個問題嗎?是什麼讓你改變了ID的名字?我想知道你做出的決定背後的原因?我還在學習PHP ..謝謝! –

+0

另外,在頂端給兩個名字可以嗎? sentMessage和contactForm? –

+0

更改後,按下提交按鈕時沒有任何反應=/ –