在新页面中回显或打印语句

时间:2014-12-15 17:25:22

标签: php

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');
}

?>

这是我的输出。 enter image description here 请帮我在联系表格下面打印这个消息。

5 个答案:

答案 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添加到该站点并自行发布。

&#13;
&#13;
<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;
&#13;
&#13;

我希望你明白这个想法