2017-04-06 52 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

更改后,按下提交按钮时没有任何反应=/ –