2012-05-21 3 views
6

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

Я нашел следующий код, и он отлично работает, но я хочу удалить ненужные поля. например, как я могу удалить поля «Фамилия» и «Электронная почта», не нарушая рабочий код?

HTML:

<html> 
<head> 
    <title>Форма</title> 
</head> 

<body> 
<form name="contactform" method="post" action="send_form_email.php"> 
    <table width="450px"> 
     <tr> 
      <td valign="top"> 
       <label for="first_name">Name *</label> 
      </td> 
      <td valign="top"> 
       <input type="text" name="first_name" maxlength="50" size="30"> 
      </td> 
     </tr> 

     <tr> 
      <td valign="top"> 
       <label for="telephone">Phone number</label> 
      </td> 
      <td valign="top"> 
       <input type="text" name="telephone" maxlength="30" size="30"> 
      </td> 
     </tr> 
     <tr> 
      <td valign="top"> 
       <label for="comments">Comments *</label> 
      </td> 
      <td valign="top"> 
       <textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2" style="text-align:center"> 
       <input type="submit" value="Send"> 
      </td> 
     </tr> 
    </table> 
</form> 
</body> 

</html> 

PHP:

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

    // EDIT THE 2 LINES BELOW AS REQUIRED 
    $email_to = "[email protected]"; 
    $email_subject = "Order"; 


    function died($error) { 
     // your error code can go here 
     echo "We are very 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 /><br />"; 
     die(); 
    } 

    // validation expected data exists 
    if(!isset($_POST['first_name']) || 
     !isset($_POST['telephone']) || 
     !isset($_POST['comments'])) { 
     died('We are sorry, but there appears to be a problem with the form you submitted.');  
    } 

    $first_name = $_POST['first_name']; // required 
    $telephone = $_POST['telephone']; // not required 
    $comments = $_POST['comments']; // required 

    $error_message = ""; 
    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
    $string_exp = "/^[A-Za-z .'-]+$/"; 
    if(!preg_match($string_exp,$first_name)) { 
    $error_message .= 'The First Name you entered does not appear to be valid.<br />'; 
    } 
    if(strlen($comments) < 2) { 
    $error_message .= 'The Comments you entered do 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 .= "First Name: ".clean_string($first_name)."\n"; 
    $email_message .= "Telephone: ".clean_string($telephone)."\n"; 
    $email_message .= "Comments: ".clean_string($comments)."\n"; 


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

<!-- include your own success html here --> 

Thank you for contacting us. We will be in touch with you very soon. 

<?php 
} 
?> 

После presing кнопку Отправить ничего не происходит. Нет электронной почты, нет сообщений. Просто чистая страница.

+0

Шаг один форматирование ;:. Вам не нужен blockquote –

ответ

4

HTML

<form name="contactform" method="post" action="send_form_email.php"> 
<table width="450px"> 
<tr> 
<td valign="top"> 
    <label for="first_name">Name *</label> 
</td> 
<td valign="top"> 
    <input type="text" name="first_name" maxlength="50" size="30"> 
</td> 
</tr> 
<tr> 
<td valign="top"> 
    <label for="telephone">Telephone Number</label> 
</td> 
<td valign="top"> 
    <input type="text" name="telephone" maxlength="30" size="30"> 
</td> 
</tr> 
<tr> 
<td valign="top"> 
    <label for="comments">Comments *</label> 
</td> 
<td valign="top"> 
    <textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea> 
</td> 
</tr> 
<tr> 
<td colspan="2" style="text-align:center"> 
    <input type="submit" value="Submit"> 
</td> 
</tr> 
</table> 
</form> 

PHP

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

    // EDIT THE 2 LINES BELOW AS REQUIRED 
    $email_to = "[email protected]"; 
    $email_subject = "Your email subject line"; 


    function died($error) { 
     // your error code can go here 
     echo "We are very 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 /><br />"; 
     die(); 
    } 

    // validation expected data exists 
    if(!isset($_POST['first_name']) || 
     !isset($_POST['telephone']) || 
     !isset($_POST['comments'])) { 
     died('We are sorry, but there appears to be a problem with the form you submitted.');  
    } 

    $first_name = $_POST['first_name']; // required 
    $telephone = $_POST['telephone']; // not required 
    $comments = $_POST['comments']; // required 

    $error_message = ""; 
    $string_exp = "/^[A-Za-z .'-]+$/"; 
    if(!preg_match($string_exp,$first_name)) { 
    $error_message .= 'The Name you entered does not appear to be valid.<br />'; 
    } 
    if(strlen($comments) < 2) { 
    $error_message .= 'The Comments you entered do 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($first_name)."\n"; 
    $email_message .= "Telephone: ".clean_string($telephone)."\n"; 
    $email_message .= "Comments: ".clean_string($comments)."\n"; 


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

<!-- include your own success html here --> 

Thank you for contacting us. We will be in touch with you very soon. 

<?php 
} 
?> 
+0

По какой-то причине это не работает. Просто пустая страница после нажатия кнопки «Отправить». И никакая новая почтовая ящик –

+0

Функция почты PHP может работать неправильно по нескольким причинам, в том числе ваш хостинг-провайдер, отключающий ее, если он находится на общем сервере. Пожалуйста, предоставьте дополнительную информацию о вашей среде. Я отредактировал код так, чтобы распечатать вывод функции. Если он отображает 0, по какой-то причине отправка по электронной почте не удалась, и вам придется искать в другом месте от кода проблемы. – Jeshurun

+0

Ничего себе! Он работает сейчас. Спасибо! К сожалению, я не могу поддержать ваш ответ. Но знай, ты мне очень помог) –

0

Просто удалите все ссылки на поля, которые вы не хотите. Когда вы получите сообщение об ошибке, пришло время задать вопрос.

добавить также сообщения об ошибках во время отладки, добавьте эту строку в верхней части вашего скрипта:

error_reporting(E_ALL);

+0

Так я и сделал. И если бы это не работа. Сейчас я отредактирую вопрос –

+0

Итак, напишите, какой у вас код есть сейчас, и сообщение об ошибке – ilanco

+0

@ user1238612, а затем сообщите точно, что не работает. Любые уведомления, ошибки, ничего не происходит? – CodeCaster

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