如何在表单提交而不是页面加载时发送php邮件,而不使用if ... POST?

时间:2019-01-03 15:51:09

标签: php html

我有PHP mail代码,可以在页面加载时成功发送电子邮件,但是我需要在同一页面的表单发布中发送它。我已经查看了其他答案,因为我意识到这通常是一件很简单的事情,但是由于使用的特定代码,我无法解决我的问题。

页面是订单输入系统的一部分,页面加载后,会向管理员发送电子邮件以通知订单已开始。目前可以使用-但我需要在此电子邮件中包含用户在同一页面上输入的数据。

我并不是在寻求帮助来包含用户数据的变量(我意识到它们尚未包含在mail代码中),而是如何在单击用户名时发送相同的mail。页面的提交按钮。

您可以看到我尝试if(isset($_POST["submit"])){失败,但是将其注释掉了。

由下面的HTML按钮触发而不是在页面加载时发送此mail的最佳方法是什么?

// PHP currently sending mail on page load  
// if(isset($_POST["submit"])){ 
    if ($_SESSION['sessfirstemailsent'] != 'yes')
    {
    $_SESSION['sessfirstemailsent'] = 'yes'  ;
    if ($_SESSION['sessorderformdatalogo'] == 'logo.jpg')
      {
      $logoimage = '<img alt="Proud Member of the US Family Guide Network" src="http://' . $_SESSION['sessorderformdatadomain'] . '/images/logo.jpg" class="img-fluid mx-auto" width="' . $logowidth . 'px"/>';
      }
    else
      {
      $logoimage= '<img alt="' . $_SESSION['sessorderformdatalogo'] . '" src="http://' . $_SESSION['sessorderformdatadomain'] . '/images/' . $_SESSION['sessorderformdatalogo'] .'" class="img-fluid mx-auto" width="' . $logowidth . 'px"/>';
      }

        $to = $sendadminemailto;
        $from = 'info@USFamilyGuide.com';
        $subject = 'New order start from ' .  $_SESSION['sessorderformdatadomainblurb'];
        $message = '<html><body>' . $logoimage . ' <br> ' . $emailmessage . $_SESSION['sessorderformdatadomainblurb'] . '<br /><br /></body></html>';
        $headers = 'From: ' . $from . "\r\nContent-type: text/html\r\n";
        mail($to, $subject, $message, $headers);
    }
//   }


<!-- HTML button i want to trigger the mail -->
<input class="btn-lg btn-primary float-right" type="submit" name="submit" value="Save & Continue"/>

1 个答案:

答案 0 :(得分:0)

您的按钮只是缺少要提交的表单。

<form action="<yourFilename>.php" method="POST">
<input class="btn-lg btn-primary float-right" type="submit" name="submit" value="Save & Continue"/>
</form>

如果是正确的。