我是php的新手,我有一个工作联系表单,但我想将发件人姓名添加到我收到的电子邮件正文中,这是我试过的 -
<?php
$to = "joedunlopburns@gmail.com";
$subject = "The Lantern Contact";
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$message = "Message from $name\n$message";
$headers = "From: $email";
$sent = mail($to, $subject, $message, $headers) ;
?>
抱歉,如果我是傻瓜!
编辑表格已添加
<form id="contactform" method="POST" action="php/contact.php">
<input class="equal" type="text" name="name" autocomplete="on" placeholder="Name"><br/><br/>
<input class="equal" type="email" name="email" autocomplete="on" placeholder="Email Address"><br/><br/>
<input class="hide" type="email" name="fake">
<textarea class="equaltall" type="text" name="message" placeholder="Message"></textarea><br/><br/>
<input class="button" type="submit" value="Send">
</form>
答案 0 :(得分:0)
最好使用$ _POST和$ _GET而不是$ _REQUEST,并且你使用$ _POST作为正文行,所以我假设您的数据是使用post发送的。
当您收到任何用户输入时,您一定要测试它。您可以使用filter_input来执行此操作。
<?php
$to = 'me@gmail.com';
$subject = 'Contact';
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$message = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING);
$body = $name; // why not use name in the following code?
$headers = "From: $email";
$sent = mail($to, $subject, $message, $body, $headers) ;
?>
我还建议不要将给定的电子邮件地址用作发件人,因为该邮件可能被视为垃圾邮件,来自非相关的smtp服务器......