内联PHP发送邮件不工作

内联PHP发送邮件不工作,php,Php,PHP不是我的强项,当我被要求实现一个模态时事通讯订阅弹出窗口时,我退缩了,因为我知道我将不得不使用PHP。我整天都在网上搜寻各种各样的东西,但我似乎什么都做不到,我真的希望有人能给我指出正确的方向。这是超级简单,我只需要一个名字和电子邮件地址,然后发送到我指定的帐户。我确信这是非常基本的,但是由于我缺乏PHP的经验,我完全不知道我会错在哪里。我的代码如下 <?php if($_POST["submit"]) { $recipient="my@emailaddress.com";

PHP不是我的强项,当我被要求实现一个模态时事通讯订阅弹出窗口时,我退缩了,因为我知道我将不得不使用PHP。我整天都在网上搜寻各种各样的东西,但我似乎什么都做不到,我真的希望有人能给我指出正确的方向。这是超级简单,我只需要一个名字和电子邮件地址,然后发送到我指定的帐户。我确信这是非常基本的,但是由于我缺乏PHP的经验,我完全不知道我会错在哪里。我的代码如下

<?php
if($_POST["submit"]) {
    $recipient="my@emailaddress.com";
    $subject="Newsletter Subscription";
    $senderName=$_POST["name"];
    $senderEmail=$_POST["email"];

    $mailBody="Name: $senderName\nEmail: $senderEmail\n\nThis is a test!";

    mail($recipient, $subject, $mailBody, "From: $senderName <$senderEmail>");

    header('Location:http://www.urltoredirect.com/');
}
?>

<html>

<head>
    <title></title>
</head>

<body>
    <form method="post" action="sendmail.php">
        <div class="rbm_input_txt">
            <input type="name" name="name" placeholder="name" required>
        </div>
        <div class="rbm_input_txt">
            <input type="email" name="email" placeholder="email" required>
        </div>
        <div class="rbm_form_submit">
            <button type="submit" class="rbm_btn_x_out_shtr">subscribe</button>
        </div>
    </form>
</body>

</html>

订阅
我将文件保存为sendmail.php并上传到我的服务器。当我填写表单时,页面只是重新加载,它没有重定向到指定的URL,我也没有收到任何电子邮件。我怀疑问题出在发送邮件中,一旦排序完毕,重定向就会起作用。有人能看到我明显遗漏的东西吗


编辑:按照下面的建议,将name属性添加到我的代码中。问题仍未解决。

标签中必须有名称

  <div class="rbm_input_txt"><input type="name" placeholder="name" name="name" required><input type="email" placeholder="email" name="email``" required

您正在检查
$\u POST['submit']
是否真实,但您的表单从未实际设置该值。要解决此问题,您可以进行两项更改:

  • 为了使
    submit
    键出现在您的请求中,您需要将其分配到表单中的一个字段。您可能希望将其添加到submit按钮,只需将name参数添加到submit按钮即可:

    <button name="submit" type="submit" class="rbm_btn_x_out_shtr">subscribe</button>
    

  • 或者,您可以只查找不同的字段,例如
    名称
    电子邮件
    ,因为您知道这两个字段都将在提交时设置。

    您的
    字段需要与
    $\u POST[]
    变量对应的
    名称
    属性。谢谢。我这样做了,但它仍然没有重定向,我也没有收到电子邮件,所以我不认为这是所有的错误。是的!我做了改变,重定向成功了,我收到了电子邮件。非常感谢您的帮助!我真的不明白为什么,尽管我怀疑浏览一下isset()的PHP文档会对这一点有所帮助。再次感谢。如果您想试用您的脚本,我建议您添加一个var_dump($\u POST)或print_r($\u POST),以查看将名称添加到提交按钮如何更改请求。我还添加了一个指向布尔转换的链接,这可能有助于澄清isset的需要。
    if (isset($_POST['submit']))