所以我建立了我的网站,我计划使用基于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
答案 0 :(得分:1)
这是因为您没有从$_POST
超全球:
$body = <<<HTML
$message
HTML;
应该是:
$message = $_POST['message'];
$body = <<<HTML
$message
HTML;
当然还有其他方法可以将$_POST['message'];
放在邮件正文中,但这说明了如何获取提交的表单值。
(您还需要执行清理(例如trim()
等)提交的值以及defend against header injections等内容。