简单表单提交到电子邮件信息

问题描述

| 我在网上找到了一个简单的免费电子邮件联系表。它并不能完全满足我的要求,我希望可以从专家那里得到一些帮助。我想知道几件事。首先,我希望当用户单击“提交”时,会向我发送一封包含填写的信息的电子邮件。目前,这还没有发生。仅当在“电子邮件”字段中输入我的电子邮件地址时,表单提交后才会向我发送电子邮件。我也想知道如何添加一个变量来捕获,例如... \'job title \'。我不必担心验证码捕获垃圾邮件,而且我不会再搞乱表单验证(我发现的脚本中已经不存在)了。各位,任何帮助都会很棒!
<?PHP
if(isset($_POST[\'email\'])) {

    // EDIT THE 2 LInes BELOW AS required
    $email_to = \"[email protected]\";
    $email_subject = \"KARRN poster\";


    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[\'last_name\']) ||
        !isset($_POST[\'email\']) ||
        !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
    $last_name = $_POST[\'last_name\']; // required
    $email_from = $_POST[\'email\']; // required
    $telephone = $_POST[\'telephone\']; // not required
    $comments = $_POST[\'comments\']; // required

    $error_message = \"\";
    $email_exp = \'/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$/\';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= \'The Email Address you entered does not appear to be valid.<br />\';
  }
    $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(!preg_match($string_exp,$last_name)) {
    $error_message .= \'The Last 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 .= \"Last Name: \".clean_string($last_name).\"\\n\";
    $email_message .= \"Email: \".clean_string($email_from).\"\\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
}
?>
的HTML
<form name=\"contactform\" method=\"post\" action=\"send_form_email.PHP\">

<table width=\"450px\">

</tr>

<tr>

 <td valign=\"top\">

  <label for=\"first_name\">First Name *</label>

 </td>

 <td valign=\"top\">

  <input  type=\"text\" name=\"first_name\" maxlength=\"50\" size=\"30\">

 </td>

</tr>



<tr>

 <td valign=\"top\"\">

  <label for=\"last_name\">Last Name *</label>

 </td>

 <td valign=\"top\">

  <input  type=\"text\" name=\"last_name\" maxlength=\"50\" size=\"30\">

 </td>

</tr>

<tr>

 <td valign=\"top\">

  <label for=\"email\">Email Address *</label>

 </td>

 <td valign=\"top\">

  <input  type=\"text\" name=\"email\" maxlength=\"80\" 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\">   <a href=\"#\">Email Form</a>

 </td>

</tr>

</table>

</form>
    

解决方法

        您只需将其添加到表单中即可添加另一个字段(例如
<input type=\"text\" name=\"job-title\" />
)。 您可以使用
$_POST[\'job-title\']
检索在PHP脚本中输入该字段的值。 该脚本应将电子邮件发送到分配给
$email_to
变量的任何电子邮件地址。     ,        看到写着“ 5”的那一行?您可以重复该操作,并对您的电子邮件地址进行硬编码,以确保在有人提交表单时始终收到电子邮件。如果要更改其中包含的消息,只需创建一个新变量(例如
$email_message2
,并将其传递给对
mail()
的新调用)。 至于添加job_title字段,您只需要执行以下操作:
$jobTitle = $_POST[\'job_title\']
。然后,您可以将该变量附加到电子邮件中。在表格上,您将添加
<input type=\"text\" name=\"job_title\" />
。寻找ѭ10的其他实例,并确保为此新字段添加适当的代码(这是用于验证)。     ,        如果您希望它能够在没有电子邮件地址的情况下提交,则应停止要求与此行一起发送电子邮件
if(isset($_POST[\'email\']))
请注意,如果未设置
$_POST[\'email
]
,则以后必须将空白值设置为$ email_,这样您就不会在
$email_from = $_POST[\'email\']; // required
上从PHP收到通知。 要添加职位,只需在表单上添加
<input>
,然后像其他已发布的变量一样通过post访问即可。您可以通过将其添加到验证其他POST的行中来进行要求。 顺便说一句,如果您的表格是公开的,我强烈建议您在上面加一个验证码。垃圾邮件发送者不是您唯一关心的问题,您也可能会遭到恶意人员的电子邮件轰炸。这发生在我身上,所以我总是推荐一个验证码。     ,        只需使用elformo.com并完成它!