仅在按下“提交”按钮且表单有效后,才尝试使用PHP发送电子邮件

博彩曼

我刚接触PHP,目前又回到HTML。我已经做了一个表格,并通过PHP发送并验证了数据,但是我仅在数据经过验证且正确之后才尝试将电子邮件发送给自己。目前,如果该页面已加载,我认为它会发送一封电子邮件,并且只要我点击“提交”,数据就会正确发送。

这是我验证数据的地方:

<?php
  //Set main variables for the data.
  $fname = $lname = $email = $subject = $website = $likedsite = $findoption = $comments = "";

  //Set the empty error variables.
  $fnameErr = $lnameErr = $emailErr = $subjectErr = $commentsErr = $websiteErr = $findoptionErr = "";

  //Check to see if the form was submitted.
  if ($_SERVER["REQUEST_METHOD"] == "POST")
  {
    //Check the 'First Name' field.
    if (empty($_POST["fname"]))
    {
      $fnameErr = "First Name is Required.";
    } 
    else
    {
      $fname = validate_info($_POST["fname"]);
    }

    //Check the 'Last Name' field.
    if (empty($_POST["lname"]))
    {
      $lnameErr = "Last Name is Required.";
    } 
    else
    {
      $lname = validate_info($_POST["lname"]);
    }

    //Check the 'E-Mail' field.
    if (empty($_POST["email"]))
    {
      $emailErr = "E-Mail is Required.";
    } 
    else
    {
      $email = validate_info($_POST["email"]);
      //Check if valid email.
      if (!filter_var($email, FILTER_VALIDATE_EMAIL))
      {
        $emailErr = "Invalid E-Mail Format.";
      }
    }

    //Check the 'Subject' field.
    if (empty($_POST["subject"]))
    {
      $subjectErr = "Subject is Required.";
    } 
    else
    {
      $subject = validate_info($_POST["subject"]);
    }

    //Check the 'Website' field.
    if (empty($_POST["siteurl"]))
    {
      $website = "";
    } 
    else
    {
      $website = validate_info($_POST["siteurl"]);
      //Check if valid URL.
      if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
      {
        $websiteErr = "Invalid URL.";
      }
    }

    //Check the 'How Did You Find Us' options.
    if (empty($_POST["howfind"]))
    {
      $findoptionErr = "Please Pick One.";
    } 
    else
    {
      $findoption = validate_info($_POST["howfind"]);
    }

    //Check the comment box.
    if (empty($_POST["questioncomments"]))
    {
      $commentsErr = "Questions/Comments are Required.";
    } 
    else
    {
      $comments = validate_info($_POST["questioncomments"]);
    }

    //Pass any un-required data.
    $likedsite = validate_info($_POST["likedsite"]);
  }

  function validate_info($data)
  {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
  }
?>

抱歉,它有点冗长。

这是我尝试发送电子邮件的地方。我尝试了两次不同的尝试,并且都得到了相同的结果。

    <?php
if (!empty($fnameErr) || !empty($lnameErr) || !empty($subjectErr) || !empty($emailErr) || !empty($commentErr) || !empty($websiteErr) || !empty($findoptionErr))
{
  echo "Sent!!";
}else
{
  echo"Not Sent!!";
}
  //Make the message.
  $message =
  "
  First Name: $fname.\n
  Last Name: $lname.\n
  Website: $website\n
  Did They Like the Site? $likedsite.\n
  How They Found Us. $findoption.\n
  Question/Comments:\n
  $comments.
  ";
  $message = wordwrap($message, 70);
  $headers = "From: $email";

  mail("[email protected]", $subject, $message, $headers);
?>

再次抱歉。在此先感谢也很抱歉,如果这是一个双重问题或描述不够,我也是堆栈溢出的新手。

AddWeb解决方案私人有限公司

请试试:

<?php
  //Set main variables for the data.
  $fname = $lname = $email = $subject = $website = $likedsite = $findoption = $comments = "";

  //Set the empty error variables.
  $fnameErr = $lnameErr = $emailErr = $subjectErr = $commentsErr = $websiteErr = $findoptionErr = "";

  //Initialize variable used to identify form is valid OR not. 
  $formValid = true;

  //Check to see if the form was submitted.
  if ($_SERVER["REQUEST_METHOD"] == "POST")
  {
    //Check the 'First Name' field.
    if (empty($_POST["fname"]))
    {
      $formValid = false;//Form not validate
      $fnameErr = "First Name is Required.";
    } 
    else
    {
      $fname = validate_info($_POST["fname"]);
    }

    //Check the 'Last Name' field.
    if (empty($_POST["lname"]))
    {
      $formValid = false;//Form not validate
      $lnameErr = "Last Name is Required.";
    } 
    else
    {
      $lname = validate_info($_POST["lname"]);
    }

    //Check the 'E-Mail' field.
    if (empty($_POST["email"]))
    {
      $formValid = false;//Form not validate
      $emailErr = "E-Mail is Required.";
    } 
    else
    {
      $email = validate_info($_POST["email"]);
      //Check if valid email.
      if (!filter_var($email, FILTER_VALIDATE_EMAIL))
      {
        $formValid = false;//Form not validate
        $emailErr = "Invalid E-Mail Format.";
      }
    }

    //Check the 'Subject' field.
    if (empty($_POST["subject"]))
    {
      $formValid = false;//Form not validate
      $subjectErr = "Subject is Required.";
    } 
    else
    {
      $subject = validate_info($_POST["subject"]);
    }

    //Check the 'Website' field.
    if (empty($_POST["siteurl"]))
    {
      $website = "";
    } 
    else
    {
      $website = validate_info($_POST["siteurl"]);
      //Check if valid URL.
      if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
      {
        $formValid = false;//Form not validate
        $websiteErr = "Invalid URL.";
      }
    }

    //Check the 'How Did You Find Us' options.
    if (empty($_POST["howfind"]))
    {
      $formValid = false;//Form not validate
      $findoptionErr = "Please Pick One.";
    } 
    else
    {
      $findoption = validate_info($_POST["howfind"]);
    }

    //Check the comment box.
    if (empty($_POST["questioncomments"]))
    {
      $formValid = false;//Form not validate
      $commentsErr = "Questions/Comments are Required.";
    } 
    else
    {
      $comments = validate_info($_POST["questioncomments"]);
    }

    //Pass any un-required data.
    $likedsite = validate_info($_POST["likedsite"]);
  }


  //If every variable value set, send mail OR display error...
  if (!$formValid){
     echo"Form not validate...";

  } 
  else {
      //Make the message.
      $message =
      "
      First Name: $fname.\n
      Last Name: $lname.\n
      Website: $website\n
      Did They Like the Site? $likedsite.\n
      How They Found Us. $findoption.\n
      Question/Comments:\n
      $comments.
      ";
      $message = wordwrap($message, 70);
      $headers = "From: $email";

      mail("[email protected]", $subject, $message, $headers);


      if($sendMail){
        echo "Mail Sent!!";
      }
      else {
        echo "Mail Not Sent!!";
      }
  }

  function validate_info($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
  }
?>

我根据一些更改来编辑答案。现在,此代码仅在表单必填字段不为空且所有字段值均按照验证有效时才允许发送邮件。

让我知道是否有任何问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS + JavaScript:仅在电子邮件有效且下拉列表中选择了一个值后,才启用“提交”按钮

来自分类Dev

尝试使用PHP从html表单发送电子邮件

来自分类Dev

更新Google表单提交后发送电子邮件

来自分类Dev

提交表单后发送电子邮件

来自分类Dev

单击提交按钮后如何向用户输入的电子邮件地址发送电子邮件?在 php 中

来自分类Dev

通过电子邮件服务(例如Mailchimp)提交表单后发送电子邮件

来自分类Dev

使用PHP和AJAX发送电子邮件表单

来自分类Dev

使用php从html表单发送电子邮件

来自分类Dev

从 ansible 发送电子邮件,邮件不是 Play 的有效属性

来自分类Dev

在表单提交中发送电子邮件

来自分类Dev

在表单提交中发送电子邮件

来自分类Dev

如何从表单提交发送电子邮件?

来自分类Dev

使用php发送电子邮件

来自分类Dev

提交按钮即使完成reCaptcha也发送电子邮件

来自分类Dev

PHP 表单(使用 POST)不提交或发送电子邮件,只显示一个空白页面

来自分类Dev

Swiftmailer拒绝有效的电子邮件地址,当且仅当以数组形式提交时

来自分类Dev

Django不向有效地址发送电子邮件

来自分类Dev

HTML表单在提交时发布PHP文件,而不是发送电子邮件

来自分类Dev

用户发布表单后如何发送电子邮件?

来自分类Dev

仅当电子邮件有效时才允许用户单击按钮

来自分类Dev

PHP-从具有邮件功能的表单发送电子邮件

来自分类Dev

仅在按下“发送表单”按钮后,如何调用PHP表单字段验证?

来自分类Dev

即使使用vtype的电子邮件验证失败,为什么提交按钮在extjs中仍然有效?

来自分类Dev

尝试使用Python通过GoDaddy发送电子邮件

来自分类Dev

尝试使用 Laravel 5.5 发送电子邮件的问题

来自分类Dev

使用Codeigniter从表单发送电子邮件

来自分类Dev

使用Django从表单POST数据发送电子邮件

来自分类Dev

使用 HTML 表单发送电子邮件

来自分类Dev

尝试从python发送电子邮件

Related 相关文章

  1. 1

    AngularJS + JavaScript:仅在电子邮件有效且下拉列表中选择了一个值后,才启用“提交”按钮

  2. 2

    尝试使用PHP从html表单发送电子邮件

  3. 3

    更新Google表单提交后发送电子邮件

  4. 4

    提交表单后发送电子邮件

  5. 5

    单击提交按钮后如何向用户输入的电子邮件地址发送电子邮件?在 php 中

  6. 6

    通过电子邮件服务(例如Mailchimp)提交表单后发送电子邮件

  7. 7

    使用PHP和AJAX发送电子邮件表单

  8. 8

    使用php从html表单发送电子邮件

  9. 9

    从 ansible 发送电子邮件,邮件不是 Play 的有效属性

  10. 10

    在表单提交中发送电子邮件

  11. 11

    在表单提交中发送电子邮件

  12. 12

    如何从表单提交发送电子邮件?

  13. 13

    使用php发送电子邮件

  14. 14

    提交按钮即使完成reCaptcha也发送电子邮件

  15. 15

    PHP 表单(使用 POST)不提交或发送电子邮件,只显示一个空白页面

  16. 16

    Swiftmailer拒绝有效的电子邮件地址,当且仅当以数组形式提交时

  17. 17

    Django不向有效地址发送电子邮件

  18. 18

    HTML表单在提交时发布PHP文件,而不是发送电子邮件

  19. 19

    用户发布表单后如何发送电子邮件?

  20. 20

    仅当电子邮件有效时才允许用户单击按钮

  21. 21

    PHP-从具有邮件功能的表单发送电子邮件

  22. 22

    仅在按下“发送表单”按钮后,如何调用PHP表单字段验证?

  23. 23

    即使使用vtype的电子邮件验证失败,为什么提交按钮在extjs中仍然有效?

  24. 24

    尝试使用Python通过GoDaddy发送电子邮件

  25. 25

    尝试使用 Laravel 5.5 发送电子邮件的问题

  26. 26

    使用Codeigniter从表单发送电子邮件

  27. 27

    使用Django从表单POST数据发送电子邮件

  28. 28

    使用 HTML 表单发送电子邮件

  29. 29

    尝试从python发送电子邮件

热门标签

归档