PHP的新手。尝试使用php发送邮件。 一切都很好。除了成功消息显示在新页面中。
我的PHP代码是
<?php
$name=$_POST['name'];
$email=$_POST['email'];
$subject=$_POST['subject'];
$message=$_POST['message'];
$to='abc@xyz.com';
$headers = 'From: '.$name."\r\n" .
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
$subject = $subject;
$body='You have got a new message from the contact form on your website .'."\n\n";
$body.='Name: '.$name."\n";
$body.='Email: '.$email."\n";
$body.='Subject: '.$subject."\n";
$body.='Message: '."\n".$message."\n";
if(mail($to, $subject, $body, $headers)) {
die('Message sent.');
} else {
die('Error: Mail failed');
}
?>
这是我的输出。 请帮我在联系表格下面打印这个消息。
答案 0 :(得分:0)
试试这个:
if (isset($_POST['submit'])){
$name=$_POST['name'];
$email=$_POST['email'];
$subject=$_POST['subject'];
$message=$_POST['message'];
$message = ""; //initialize
...
if(mail($to, $subject, $body, $headers)) {
$message = 'Message sent.'; //Don't use the die function
} else {
$message = 'Error: Mail failed';
}
}
//Then echo the $message variable further down in the form code in the HTML
echo $message; //` This will be an empty string when you load your form page.
$message
将在您提交表单时设置。
答案 1 :(得分:0)
请勿使用die
,只需使用echo
打印消息:
if(mail($to, $subject, $body, $headers)) {
echo 'Message sent.';
} else {
echo 'Error: Mail failed';
}
答案 2 :(得分:0)
当您的目标与表单不同时,它会使用Post请求将浏览器重定向到该页面。要保持在同一页面上,请将目标设为与表单相同的页面。看这里: https://stackoverflow.com/a/5826877/1512654
然后,您需要检查是否至少设置了一个帖子变量。
if (isset($_POST['email']) {
如果没有设置,那么您是第一次加载页面而不需要发送电子邮件。当新的Post请求进入时,它将发送电子邮件。使用echo打印消息,并将此部分放在要显示消息的表单底部。
答案 3 :(得分:-1)
查看echo 'Your message goes here';
这应该可以解决。
echo 'To print normal sentences';
print 'Similar to echo';
print_r($array); // To print an array structure
对于你的问题,回声应该有效。在返回成功消息或任何消息时尽量避免die
。
答案 4 :(得分:-1)
您正在发布我打赌的另一个.php文件。 要在表单所在的同一站点上显示该消息,请将PHP添加到该站点并自行发布。
<form action="" method="post" id="recipient-form">
<select id="recipient" name="recipient" size="4">
<option value="">Select...</option>
<option value="1">Artistic Director</option>
<option value="2">Site Administrator</option>
<option value="3">Someone else</option>
</select>
</form>
<?php
if (isset($_POST['recipient'])) :
$to = '';
// mail processing script
if ($_POST['recipient'] == 1) {
$to = 'recipient1';
}
else if($_POST['recipient'] == 2) {
$to = 'reciipient2';
}
else if($_POST['recipient'] == 3) {
$to = 'recipient3';
}
else {
$to = 'Sorry for no recipient';
}
echo $to;
endif; ?>
&#13;
我希望你明白这个想法