0

它发送电子邮件,但没有正文、主题或任何内容。这就是我得到的:

在此处输入图像描述

HTML:

<div class="contact-form">
            <form action="mail.php" method="post">
                <label for="name">Name:<input type="text" id="name" class="text" /></label>
                <label for="email">Email:<input type="text" id="email" class="text" /></label>
                <label for="message">Message:<textarea id="message"></textarea></label>
                <input type="submit" class="submit" value="Send Message" />
            </form>
        </div>

PHP(邮件.php):

<?php

    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];

    $recipient = "me@christianselig.com";
    $subject = "Message From Website";
    $headers = "From: " . $email;

    mail($recipient, $subject, $message, $headers);
    echo "Thanks! The message was sent. :)";

?>

有什么见解吗?非常感谢。

4

4 回答 4

7

表单字段基于它们的名称而不是它们的 ID。

替换你的:

id="(...)"

经过

id="(...)" name="(...)"

你应该看看Swift Mailer,它比你当前的方法更安全。

于 2012-09-14T13:32:28.097 回答
1

您需要在 HTML 输入字段上有一个名称属性。这就是表单用来在$_POST数组中创建索引的方式。更正的 HTML 如下

<div class="contact-form">
        <form action="mail.php" method="post">
            <label for="name">Name:<input type="text" id="name" name="name" class="text" /></label>
            <label for="email">Email:<input type="text" id="email" name="email" class="text" /></label>
            <label for="message">Message:<textarea id="message" name="message"></textarea></label>
            <input type="submit" class="submit" value="Send Message" />
        </form>
    </div>
于 2012-09-14T13:34:04.933 回答
0

进入我的服务器工作,你确定在 $_POST 中设置了吗?如果您不能发送电子邮件 assicure 您可以尝试设置 SMTP 来发送您的电子邮件 尝试使用类似 phpmailer 的东西来发送电子邮件。

在您必须输入的每个字段的表单中: - id="example_id" - name="example_name"

于 2012-09-14T13:33:19.247 回答
0

您需要为每个 html 元素提供 name 属性。使用下面的 html 代码:

<div class="contact-form">
            <form action="mail.php" method="post">
                <label for="name">Name:<input type="text" id="name" name="name" class="text" /></label>
                <label for="email">Email:<input type="text" id="email" name="email" class="text" /></label>
                <label for="message">Message:<textarea id="message" name="message"></textarea></label>
                <input type="submit" class="submit" value="Send Message" />
            </form>
        </div>
于 2012-09-14T13:33:53.100 回答