Php 联系方式。我如何在收到电子邮件的同时获得姓名?

Php 联系方式。我如何在收到电子邮件的同时获得姓名?,php,forms,contact,contact-form,Php,Forms,Contact,Contact Form,这是我第一次尝试制作联系人表单。我有一些问题 这是可行的,我收到了电子邮件,但我没有收到电子邮件中的姓名字段 HTML: 名称 电子邮件地址 消息 PHP: $name是我的问题。我已经收到了,邮件来自hostmaster@domane.com,如果我删除它,一切正常。但我不想把名字寄给我。怎么用? 或者我应该做完全不同的事情 此外,如果您将所有字段留空,“用户”不会收到任何错误消息,并且会向我发送一封空白电子邮件 希望你能帮助我。:) 迈克尔·伯克夫斯基是对的。您需要做的是将名称添加

这是我第一次尝试制作联系人表单。我有一些问题 这是可行的,我收到了电子邮件,但我没有收到电子邮件中的姓名字段

HTML:


名称
电子邮件地址
消息

PHP:


$name是我的问题。我已经收到了,邮件来自hostmaster@domane.com,如果我删除它,一切正常。但我不想把名字寄给我。怎么用? 或者我应该做完全不同的事情

此外,如果您将所有字段留空,“用户”不会收到任何错误消息,并且会向我发送一封空白电子邮件


希望你能帮助我。:)

迈克尔·伯克夫斯基是对的。您需要做的是将名称添加到邮件正文中(不是输入
name=
属性,而是电子邮件正文)

大概是这样的:

<?php
$to = "name@domane.com";
$subject = "Contact Us";
$name = $_POST['name'];
$email = $_POST['email'] ;
$message = $_POST['message'] ;
$headers = "From: $email";

$body = "Name: $name\r\n";
$body .= "Message: $message";

$sent = mail($to, $subject, $body, $headers) ;
if($sent)
{print "Your mail was sent successfully"; }
else
{print "One of the field are not filled as requirred"; }
?>



修订版:

HTML:


名称
电子邮件地址
消息

PHP:


您应该阅读更多有关电子邮件构造的信息。您可能希望指定一些电子邮件标题,其中包含一个更漂亮的
FROM:
等等,而不是将用户定义的消息放在其中。

您应该阅读php.net上的函数文档

查看函数签名:

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
现在您将
$name
作为“
$additional\u headers
”参数。您应该在
$message
参数中传递
$name
和任何额外的相关数据

话虽如此,以下是发送消息的正确代码:

$sent = mail($to, $subject, "A message from $name: $message", $headers);

mail()
的参数有
to、subject、body、headers
。您有一个额外的
$name
参数,它不属于您。请注意,使用
s,而不是
s。谢谢,这是一个很好的解决方案。工作得很好@我刚刚在我的答案中添加了一些更完整的HTML和php。使用html,我关闭了您的输入标记,并为每个标记指定了一个唯一的
id=
。然后,我将您的
H3
更改为
s,并将它们设置为相应的输入ID(这样,您可以单击标签以聚焦输入)。使用php,我重新配置了from并设置了对的回复。“发件人”地址应使用与站点相同的域(并且可以是任意电子邮件地址)。
<form method="post" name="contactform" action="scripts/contact.php">
<label for="name">Name</label>
<input type="text" name="name" id="name" />
<label for="email">Email Address</label>
<input type="text" name="email" id="email" />
<label for="message">Message</label>
<textarea name="message" id="message"></textarea>
<br/><input class="submit" type="submit" value="Send Form" />
</form>
<?php
$name = $_POST['name'];
$email = $_POST['email'] ;
$message = $_POST['message'] ;

$body = "Name: $name\r\n";
$body .= "Message: $message";

$to = "name@domane.com";
$from = "automailer@mydomainname.com (Website Automailer)";
$subject = "Contact Us";
$headers =  "From: $from\r\n" .
        "Reply-To: $email ($name)";
$sent = mail($to, $subject, $body, $headers) ;
if($sent) { echo "Your mail was sent successfully"; }
else { echo "One of the field are not filled as requirred"; }
?>
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
$sent = mail($to, $subject, "A message from $name: $message", $headers);