我的PHP表单停止工作。之前一切正常

时间:2020-03-16 19:24:34

标签: php html

这是我的HTML:

<form method="POST"  action="php/enigma.php" class="input-focus-label-highlight input-label-focus-color-FFFFFF">
    <span class="form-input-label input-focus-label font-family-1 color-666" data-pb-editable-text=""><span style="color:#ffffff;">Name:<br>​​​​​​​</span><br></span>
    <div>
        <div class="form-input-field"><input class="font-family-1 rel-color-464646 rel-border-color-E7E7E7" type="text"  id="name"  name="name" placeholder="" required style="
            margin-bottom: 20px;"></div>
        </div>
    <span class="form-input-label input-focus-label font-family-1 color-666" data-pb-editable-text=""><span style="color:#ffffff;">Email Address:<br>​​​​​​​</span><br></span>
    <div>
        <div class="form-input-field"><input class="font-family-1 rel-color-464646 rel-border-color-E7E7E7" type="email"  id="email"  name="email" placeholder="" required></div>
        <div class="form-submit-button"><button class="background-color-FFFFFF background-color-hover-ECF8FF" type="submit" name="submit"><i class="fa fa-arrow-right color-FFFFFF" style="color: rgb(0, 0, 0);"></i></button></div>
    </div>
</form>

这是我的PHP:

    <?php

    $email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
    $name = filter_var($_POST["name"], FILTER_SANITIZE_STRING);

    if(
    empty($email))   {
        echo "Please fill in the required (*) fields";
        exit;
    }

    $headers = "MIME-Version: 1.0\r\n";
    $headers = "Content-type: text/plain; charset=utf-8\r\n";
    $headers = "From: ". $email ."" . "\r\n";
    'Reply-To: ". $email ."' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();


    mail( 'email@email.com', 'New Email from  Website' ,
    "Email: $email \r\n", "Name: $name \r\n", $headers );

     header('Location:https://google.com');

    ?>

我的表格工作得很好。我添加了“名称”输入字段,它刚刚停止工作。我再次删除了名称输入字段,以测试它是否可以工作,但不再起作用。

标头函数正确执行。邮件功能似乎是问题所在。我尝试使用服务器和本地主机,但仍然没有运气。

1 个答案:

答案 0 :(得分:0)

您正在将Name 作为标头传递到mail()而不是正文的一部分,并将$headers作为“其他参数”发送。为了说明这一点,让我们将每个参数放在自己的行上:

mail(
  'email@email.com',
  'New Email from  Website' ,
  "Email: $email \r\n",
  "Name: $name \r\n",
  $headers
);

您似乎打算将“电子邮件”和“名称”字符串组合到正文中

mail(
  'email@email.com',
  'New Email from  Website' ,
  "Email: $email \r\nName: $name \r\n",
  $headers
);