Форма обратной связи PHP не отправляется

Привет, я использовал этот очень простой скрипт php-контакта с успехом, хотя, когда я попытался реализовать его на новой HTML-странице, форма не будет отправлена. Может ли кто-нибудь увидеть очевидные ошибки? Любая помощь приветствуется

Вот html формы:

<div id="formContainer"> <form action="form.php" method="post" id="contactForm"> <fieldset> <legend>Your details</legend> <label for="name">Name *</label> <input type="text" id="name"> <label for="email">Email *</label> <input type="email" id="email"> <label for="tel">Telephone</label> <input type="tel" id="tel"> </fieldset> <fieldset> <legend>Tutoring</legend> <label for="type">Type of lesson</label> <select name="type" id="type"> <option>Individual</option> <option>Group</option> </select> <label for="subject">Subject</label> <input name="subject" list="subjects" id="subject"> <datalist id="subjects"> <option>English</option> <option>Biology</option> <option>Geography</option> </datalist> <label for="level">Your level</label> <select name="level" id="level"> <option>Beginner</option> <option>GCSE</option> <option>A-Level</option> <option>University</option> </select> <label for="hours">Hours/week</label> <input type="number" id="hours"> <label for="info">Additional Information</label> <textarea name="info" id="info" rows="10" cols="6"></textarea> </fieldset> <input type="submit" name="submit" value="Send" id="sendButton"> <input type="hidden" name="submit_check" value="1" /> </form> </div> 

И вот простой скрипт php:

 <?php if ($_POST["email"]<>'') { $ToEmail = 'onjegolders@gmail.com'; $EmailSubject = 'Site contact form '; $mailheader = "From: ".$_POST["email"]."\r\n"; $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; $MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; $MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; $MESSAGE_BODY = "Telephone: ".$_POST["tel"]."<br>"; $MESSAGE_BODY = "Type: ".$_POST["type"]."<br>"; $MESSAGE_BODY = "Subject: ".$_POST["subject"]."<br>"; $MESSAGE_BODY = "Level: ".$_POST["level"]."<br>"; $MESSAGE_BODY = "Hours required: ".$_POST["hours"]."<br>"; $MESSAGE_BODY .= "Additional information: ".nl2br($_POST["info"])."<br>"; mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); ?> <html> <h3>Thanks for your email</h3> <h4>I'll get back to you as soon as possible</h4> <a href="index.html"><p>Click here to go back to previous page</p></a> </html> <?php } else { ?> <html>Sorry, this form didn't work</html> <?php }; ?> 

Попробуйте

 if ( !empty($_POST["email"]) ) 

Однако вы можете проверить, что размещено на этой странице, используя:

 echo '<pre>'; var_dump( $_POST ); 

Измените форму form.php следующим образом

  <?php if ($_POST["email"]<>'') { $ToEmail = 'onjegolders@gmail.com'; $EmailSubject = 'Site contact form '; $mailheader = "From: ".$_POST["email"]."\r\n"; $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; $MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; $MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; $MESSAGE_BODY = "Telephone: ".$_POST["tel"]."<br>"; $MESSAGE_BODY = "Type: ".$_POST["type"]."<br>"; $MESSAGE_BODY = "Subject: ".$_POST["subject"]."<br>"; $MESSAGE_BODY = "Level: ".$_POST["level"]."<br>"; $MESSAGE_BODY = "Hours required: ".$_POST["hours"]."<br>"; $MESSAGE_BODY .= "Additional information: ".nl2br($_POST["info"])."<br>"; mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); echo &lt;&lt;&lt;EXCERPT <html> <h3>Thanks for your email</h3> <h4>I'll get back to you as soon as possible</h4> <a href="index.html"><p>Click here to go back to previous page</p></a> </html> EXCERPT; } else { echo "<html>Sorry, this form didn't work</html>"; } ?> 

в вашей

 if ($_POST["email"] <> '') { 

измените это на

  if ($_POST["email"] != '') { 

Вы должны попробовать следующее:

 if(!empty($_POST["email"])){ //your email preparation code } 

Применяется следующее:

 if($_POST["email" <> ''){ //your email preparation code } 

! в основном означает нет , поэтому !empty означает не пустое

Вы также можете использовать:

 if ($_POST["email"]) { 

Это работает так же, как проверка != "" Или empty() . PHP был принят, чтобы хорошо обрабатывать формы. И вы можете просто пропустить зонды входящих полей формы. Он использует некоторые магические логические правила преобразования для строк, которые в большинстве случаев будут выполнять то, что вы хотите.

Другим преимуществом этого более простого стиля является то, что он облегчает отладку, если вы включаете режим error_reporting E_ALL и E_NOTICE (= debug).