【问题标题】:PHP contact form error sending mailPHP联系表单错误发送邮件
【发布时间】:2016-04-14 15:14:26
【问题描述】:

我正在尝试将此php代码集成到我的联系表单中,所有html输入都很好,php脚本中一定有错误,代码如下:

    <?php
$to = 'test@email.com;
$subject = 'New Website Message';
$headers = 'From: (Website Form) <POST['email']>' . "\r\n" . 'Content-type: text/html; charset=utf-8';
$message = '
<html>
    <head>
        <title>You have received a new message!</title>
    </head>
    <body>
        <h3>Name: <span style="font-weight: normal;">' . $_POST['name'] . '</span></h3>

        <h3>Email: <span style="font-weight: normal;">' . $_POST['email'] . '</span></h3>

        <div>
            <h3 style="margin-bottom: 5px;">Message:</h3>
            <div>' . $_POST['message'] . '</div>
        </div>
    </body>
</html>';

if (!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message'])) {
    if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        mail($to, $subject, $message, $headers) or die('<span style="color: red;">Error sending Mail</span>');
        echo '<span class="send-true" style="color: #00dd63;">Your email was sent!</span>';
    }
} else {
    echo '<span style="color: red;">All fields must be filled!</span>';
}
?>

【问题讨论】:

  • &lt;POST['email']&gt; 必须是$_POST['email']

标签: php html forms contact


【解决方案1】:

好像你有一个语法错误的人。 试试这个:

    <?php
$to = 'test@email.com';
$subject = 'New Website Message';
$headers = 'From: (Website Form) <$_POST['email']>' . "\r\n" . 'Content-type: text/html; charset=utf-8';
$message = '
<html>
    <head>
        <title>You have received a new message!</title>
    </head>
    <body>
        <h3>Name: <span style="font-weight: normal;">' . $_POST['name'] . '</span></h3>

        <h3>Email: <span style="font-weight: normal;">' . $_POST['email'] . '</span></h3>

        <div>
            <h3 style="margin-bottom: 5px;">Message:</h3>
            <div>' . $_POST['message'] . '</div>
        </div>
    </body>
</html>';

if (!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message'])) {
    if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        mail($to, $subject, $message, $headers) or die('<span style="color: red;">Error sending Mail</span>');
        echo '<span class="send-true" style="color: #00dd63;">Your email was sent!</span>';
    }
} else {
    echo '<span style="color: red;">All fields must be filled!</span>';
}
?>

【讨论】:

  • 我无法提交编辑,因为我的编辑少于六个字符,但是您在 $to 变量声明的末尾缺少一个结束引号。这肯定会导致语法错误。这也发生在 OP 中
  • $_POST['name'] 周围仍然缺少一些引号
  • @Anant 我编辑了它,让我们等一下,让他试试,希望它可以工作。
  • 我想知道他说即使您缺少第一个引号而现在仍然缺少引号也有效。
  • @Anant LOL,这里也一样。但我猜他是第一个(')想出来的,因为这是我在发布正确的脚本后对代码所做的唯一编辑。所以他唯一的错误是#_POST['name']
猜你喜欢
  • 2019-01-30
  • 1970-01-01
  • 1970-01-01
  • 2019-09-04
  • 1970-01-01
  • 1970-01-01
  • 2013-02-11
  • 1970-01-01
  • 2013-12-10
相关资源
最近更新 更多