【发布时间】:2013-03-01 05:22:11
【问题描述】:
我创建了一个发送到电子邮件的 PHP 脚本。
当只发送一个字段(消息字段)时,表单似乎可以正常工作,但是一旦添加了其他字段,表单就会停止通过电子邮件发送到收件箱(但表单仍然会正确触发并重新发送给谢谢很好。)
这是我目前拥有的代码,这不起作用
<?php
$email = $_REQUEST['email'] ;
$name = $_REQUEST['name'] ;
$services = $_REQUEST['services'] ;
$message = $_REQUEST['message'] ;
if (!isset($_REQUEST['email'])) {
header( "Location: feedback.html" );
}
elseif (empty($email) || empty($message)) {
header( "Location: error.html" );
}
else {
mail( "info@website.co.uk", "Message via your website!",
$name, $services, $message, "From: $email" );
header( "Location: thankyou.html" );
}
?>
这是之前的代码,确实有效,但只显示消息
<?php
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
if (!isset($_REQUEST['email'])) {
header( "Location: feedback.html" );
}
elseif (empty($email) || empty($message)) {
header( "Location: error.html" );
}
else {
mail( "info@website.co.uk", "Message via your website!",
$message, "From: $email" );
header( "Location: thankyou.html" );
}
?>
这是表单的 HTML:
<form method="post" action="sendmail.php">
<label>Name:</label> <input name="name" type="text" /><br />
<label>Email:</label> <input name="email" type="text" /><br />
<label>What service do you require?:</label> <input name="services" type="text" /><br />
<label>Message:</label><br />
<textarea name="message" rows="15" cols="40">
</textarea><br />
<input type="submit" />
</form>
【问题讨论】:
-
你应该清理你的输入stackoverflow.com/q/1055460/1607098
-
您给 Mail() 的参数太多。您是否希望 $name、$services 和 $message 都在消息正文中?如果是这样,你需要这样的东西
mail( "info@website.co.uk", "Message via your website!", "$name $services $message", "From: $email" ); -
php邮件函数在发送邮件后返回true或false。检查邮件功能返回什么???