2016-08-18 114 views
-2

我有一个问题,我无法弄清楚,如果它的我的PHP或服务器问题。PHP HTML5联系表格不发送

我在同一页面创建了一个联系表单'contact.php',它的所有内容都是PHP的HTML &。

我检查了一遍又一遍的代码,找不到任何错误。我没有收到最终目标电子邮件中的任何电子邮件。谁能帮我?这是我的代码有

这里是我的电子邮件代码:

$to = 'MY EMAIL ADDRESS GOES HERE'; 
    $subject = 'New Contact Submission on '; 

    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 

$body = <<<EMAIL 

    Hi! My name is $name 

    My Email is $email 

    $message 


    EMAIL; 

     $header = "from: $email"; 

     if($_POST){ 
     if($name == '' || $email == '' || $message == ''){ 
      $feedback = 'Please Fill all areas'; 

     }else{ 

      mail($to, $subject, $body, $header); 
     $feedback = 'Thank you! We will contact you soon!'; 

     } 
    } 


?> 


下面是联系表格我的HTML代码。记住,我在1个'contact.php'文件中有这个。

     <form action="" method="post"> 
          <div class="col-md-12"> 
           <div class="form-group"> 
            <label for="name" class="sr-only" >Name</label> 
            <input placeholder="Name" id="name" type="text" class="form-control input-lg"> 
           </div> 
          </div> 
          <div class="col-md-12"> 
           <div class="form-group"> 
            <label for="email" class="sr-only" >Email</label> 
            <input placeholder="Email" id="email" type="text" class="form-control input-lg"> 
           </div> 
          </div> 

          <div class="col-md-12"> 
           <div class="form-group"> 
            <label for="message" class="sr-only" >Message</label> 
            <textarea placeholder="Message" id="message" class="form-control input-lg" rows="3"></textarea> 
           </div> 
          </div> 
          <div class="col-md-12"> 
           <div class="form-group"> 
            <input type="submit" class="btn btn-primary btn-lg " action="" value="Send"> 
            <p id="feedback"><?php echo $feedback;?></p> 
           </div> 
          </div> 


         </form> 
+1

请[格式](http://stackoverflow.com/help/formatting )您的帖子正确。 – Script47

+0

另请[read](http://php.net/manual/en/tutorial.forms.php)如何处理表单。 – Script47

+1

是的,我放弃编辑这个。格式化时不要使用'>'字符,也不要使用'##'。 –

回答

0

我不能告诉如果两个单引号或一个双引号

if($_POST){ if($name == " || $email == " || $message == ") 

这是不正确的?你的意思是

if($_POST){ if($name == " " || $email == " " || $message == " ") 
+0

如果你在编辑模式下查看他们的代码(这可能是一个混乱,我可能会添加),你会发现他们已经声明了'$ name = $ _POST ['name'];'条件。 –

+0

另一个编辑正在等待审查....感谢您的提示,虽然 – brad

+0

我批准了编辑,所以我们会看到看起来像什么。 *欢呼* –

1

我注意到你关闭了一个if语句括号两次,并关闭了另一个错误的地方。

您还没有为所有HTML输入添加名称。

该修正代码工作...

PHP

<?php 

    $to = 'Your email'; $subject = 'New Contact Submission on '; 

    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 

    $body = "Hi! My name is $name 

    My Email is $email 

    $message"; 

    $header = "from: $email"; 

    if($_POST){ 
     if($name == '' || $email == '' || $message == ''){ 
      $feedback = 'Please Fill all areas'; 
     } 
    }else{ 

     mail($to, $subject, $body, $header); 
     $feedback = 'Thank you! We will contact you soon!'; 

    } 

?> 

HTML

<form action="" method="post"> 
    <div class="col-md-12"> 
     <div class="form-group"> 
      <label for="name" class="sr-only" >Name</label> 
      <input placeholder="Name" id="name" type="text" class="form-control input-lg" name="name"> 
     </div> 
    </div> 
    <div class="col-md-12"> 
     <div class="form-group"> 
      <label for="email" class="sr-only" >Email</label> 
      <input placeholder="Email" id="email" type="text" class="form-control input-lg" name="email"> 
     </div> 
    </div> 

    <div class="col-md-12"> 
     <div class="form-group"> 
      <label for="message" class="sr-only" >Message</label> 
      <textarea placeholder="Message" id="message" class="form-control input-lg" rows="3" name="message"></textarea> 
     </div> 
    </div> 
    <div class="col-md-12"> 
     <div class="form-group"> 
      <input type="submit" class="btn btn-primary btn-lg " action="" value="Send"> 
      <p id="feedback"><?php echo $feedback;?></p> 
     </div> 
    </div> 
</form> 
+0

嗨Yudi!谢谢!我只是试过这段代码,它似乎可行,但它不会将电子邮件发送到最终目的地,这是我需要从那里去的地方。任何想法,如果它的任何东西在服务器上或这里?谢谢! – Accu1

+0

@ Accu1我在phpfiddle.org上测试过,邮件发送到我的邮箱,所以我说这是你的服务器的问题。我真的很感激,如果你会以最佳答案作为奖励,因为我是新人,需要支持,谢谢! –

+0

嗨,它可以工作,但是,我的服务器返回这个错误“数据结束后来自远程邮件服务器的SMTP错误:550邮件应该有一个或没有来自标题,而不是2.”任何帮助?谢谢 – Accu1