2015-05-03 3 views
1

Я пытаюсь создать контактную форму с использованием HTML и PHP. PHP для формы ниже:Проблемы с отправкой формы контакта в личный адрес электронной почты

<?php 
    if(isset($_POST['email'])) { 

     // Email to information 
     $email_to ="[email protected]"; 
     $email_subject ="Contact"; 
     $email_from ="Person"; 


     // Error code 
     function died($error) { 
      echo "We are sorry, but there were error(s) found with the form you submitted."; 
      echo "These errors appear below.<br/><br/>"; 
      echo $error. "<br/><br/>"; 
      echo "Please go back and fix these errors.<br/>"; 
      die(); 
     } 

     // Validation 
     if(!isset($_POST['fname']) || !isset($_POST['lname']) || !isset($_POST['email']) || !isset($_POST['message'])) { 
      died('We are sorry but there appears to be a problem with the form you submitted.');  
     } 

     $fname = $_POST['fname']; 
     $lname = $_POST['lname']; 
     $email = $_POST['email']; 
     $message = $_POST['message']; 

     $error_message = ""; 


     if(!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
      $error_message .= 'The email address you entered does not appear to be valid.<br/>'; 
     } 

     $string_exp = "/^[A-Za-z.'-]+$/"; 
     if(!preg_match($string_exp, $fname)) { 
      $error_message .= 'The first name you entered does not appear to be valid.<br/>'; 
     } 

     if(!preg_match($string_exp, $lname)) { 
      $error_message .= 'The last name you entered does not appear to be valid.<br/>'; 
     } 

     if(strlen($message) < 2) { 
      $error_message .= 'The message you entered does not appear to be valid.<br/>'; 
     } 

     if(strlen($error_message) > 0) { 
      died($error_message); 
     } 
     $email_message = "Form details below.\n\n"; 

     function clean_string($string) { 
      $bad = array("content-type", "bcc:", "to:", "cc:", "href"); 
      return str_replace($bad, "", $string); 
     } 

     $email_message .= "Name:" . clean_string($fname) . clean_string($lname) . "\n"; 
     $email_message .= "Email:" . clean_string($email) . "\n"; 
     $email_message .= "Message:" . clean_string($message) . "\n"; 

     // Create email headers 
     $headers = 'From: ' .$email_From . "\r\n". 'Reply-To:' . $email. "\r\n" . 'X-Mailer: PHP/' . phpversion(); 
     mail($email_to, $email_subject, $email_message, $headers); 
     ?> 

     Thankyou for contacting me. I will be in contact with you shortly. <br/> 
     Please click <a href="index.html">here</a> to go back to the main website 
<?php 
    } 
?> 

Вопрос заключается в том, что, когда форма была отправлена, она никогда не посылает по электронной почте мой личный адрес электронной почты. Есть ли что-то еще, что мне нужно настроить с помощью веб-хостинга или проблема только в коде? Я провел некоторое исследование о соответствующем коде для ввода и попробовал много разных вариантов, но ни один из них не работает.

+0

вы пытаетесь это в локальном хосте? – Lal

+0

Какая ошибка вы получаете? Вы пытались распечатать ошибку? – CloudFreezer

+0

Я загружаю его на сервер перед тестированием, поэтому PHP действительно работает. Я не получаю никаких ошибок, я просто не получаю электронное письмо от формы. – mtmeyer

ответ

0

Формы, отправляющие электронную почту, являются ошибочными, и еще хуже, если что-то пойдет не так, ни вы, ни конечный пользователь обычно не получите сообщение об ошибке. Они просто подумают, что ваше обслуживание клиентов не отвечает. Вещи, которые идут не так: сервер электронной почты сервера вниз или неправильно настроенный, заполняя почтовый ящик полным, spamfilter есть электронную почту, правила изменения электронной почты веб-сервера и отбрасывают ваши письма.

Я рекомендую облачную форму, которая хранит формы и отправляет их по электронной почте, но электронная почта не является основным хранилищем данных.

Что-то вроде этого, возможно, имеет свободный план: http://www.wufoo.com/features/

+0

Я не понимал, что это вариант, я обязательно займусь этим. Также вы забыли вставить ссылку на рекомендованный вами сайт. – mtmeyer

Смежные вопросы