当涉及到PHP并且有一个通过电子邮件发送表单内容的脚本时,我很无能为力。麻烦的是,当我希望它还发送捕获的名称和电子邮件地址时,它只会向我发送评论。
任何人都知道如何调整此脚本来执行此操作?
提前一百万谢谢!
<?php
error_reporting(E_NOTICE);
function valid_email($str)
{
return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
}
if($_POST['name']!='' && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && strlen($_POST['comment'])>1)
{
$to = "me@me.com";
$headers = 'From: '.$_POST['email'].''. "\r\n" .
'Reply-To: '.$_POST['email'].'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$subject = "Contact Form";
$message = htmlspecialchars($_POST['comment']);
if(mail($to, $subject, $message, $headers))
{
echo 1; //SUCCESS
}
else {
echo 2; //FAILURE - server failure
}
}
else {
echo 3; //FAILURE - not valid email
}
?>
答案 0 :(得分:1)
你可以做到
$extra_fields = 'Name: '.$_POST['name'].'<br>Email: '.$_POST['email'].'<br><br>Message:<br>';
$message = $extra_fields.$_POST['comment'];
不完全干净,但你明白了。只需将数据与$ message连接即可。
答案 1 :(得分:1)
更改此行:
$message = htmlspecialchars($_POST['comment']);
到
$message = htmlspecialchars($_POST['name'] . $_POST['email'] . "\r\n" . $_POST['comment']);
或者那种效果
答案 2 :(得分:0)
问题在于您的$message = ...
行,其中仅包含$_POST['comment'])
变量。您需要添加$_POST['name']
和$_POST['email']
,如下所示:
$message = '';
$message .= htmlspecialchars($_POST['name']) . "\n";
$message .= htmlspecialchars($_POST['email']) . "\n";
$message .= htmlspecialchars($_POST['comment']) . "\n";