Php联系表格效果不佳

时间:2014-01-22 20:36:41

标签: php html html5 contact-form

所以我建立了我的网站,我计划使用基于php的联系页面将电子邮件发送到我的电子邮件地址,我收到了一封电子邮件,但没有内容或摘要...... 所以这是我的HTML:

<form action="Php/sendemail.php" method="POST">
<div id="form-inner">

<input type="text" class="input" name="name" id="name" placeholder="Name">
<input type="email" class="input" name="email" id="email" placeholder="E-mail">
<textarea class="input textarea" name="message" id="message" placeholder="Your message here"></textarea>    

<input type="submit" class="button" value="Send message" id="button">
</div>
</form>

这是我的PHP:     

$subject = "Contact form submitted!";
$to = 'email@example.com';

$body = <<<HTML
$message
HTML;

$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";

mail($to, $subject, $message, $headers);

header('Location: /Contact.php');
?>

如果你能帮忙,我真的不明白为什么会这样。 Thnaks

1 个答案:

答案 0 :(得分:1)

这是因为您没有从$_POST超全球:

中剔除价值
$body = <<<HTML
$message
HTML;

应该是:

$message = $_POST['message'];
$body = <<<HTML
$message
HTML;

当然还有其他方法可以将$_POST['message'];放在邮件正文中,但这说明了如何获取提交的表单值。

(您还需要执行清理(例如trim()等)提交的值以及defend against header injections等内容。