2016-08-18 5 views
-2

У меня проблема, и я не могу понять, есть ли ее проблема с PHP или сервером.PHP HTML5 контактная форма не отправляется

Я создал контактную форму 'contact.php' ее все на той же странице, HTML & PHP.

Я проверил код снова и снова и не обнаружил ошибок. Я не получаю никаких писем по электронной почте конечного адресата. Может кто-нибудь мне помочь? Это код, у меня есть

Вот мой электронный код:

$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 код для формы обратной связи. Помните, что у меня это в одном файле «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

Просьба также [читать] (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

Я одобрил редактирование, поэтому мы посмотрим, как это выглядит. * cheers * –

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

Hi Yudi! Спасибо! Я просто пробовал этот код, и, похоже, он работает, однако он не отправляет электронное письмо в конечный пункт назначения, в котором мне нужно, чтобы это было. Любая идея, если что-нибудь на сервере или здесь? Спасибо! – Accu1

+0

@ Accu1 Я тестировал на phpfiddle.org и письмо, отправленное на мой адрес электронной почты, поэтому я говорю, что это проблема с вашим сервером. Я был бы очень признателен, если бы вы получили лучший ответ, поскольку я новичок и нуждаюсь в поддержке, спасибо! –

+0

Привет, Это действительно работает. Однако мой сервер возвращает эту ошибку «SMTP-ошибка с удаленного почтового сервера после окончания данных: 550 сообщений должны иметь один или ничего из заголовков, а не 2." Любая помощь? спасибо – Accu1