使用php发送邮件后,在页面中返回消息状态


Return message status in page after send mail with php

发送电子邮件后,我尝试在html页面中显示一条消息。我不想在警报中使用javascript,只想在发送按钮后使用一条简单的消息。

我制作了一个联系人php页面,代码是:

<?php
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_telefon = $_POST['cf_telefon'];
$field_message = $_POST['cf_message'];
$mail_to = 'diaconu.eduardstefan@gmail.com';;
$from = 'Mesaj nou de la:'.$field_name;
$body_message = 'From: '.$field_name."'n";
$body_message .= 'E-mail: '.$field_email."'n";
$body_message .= 'Telefon: '.$field_telefon."'n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."'r'n";
$headers .= 'Reply-To: '.$field_email."'r'n";
$mail_status = mail($mail_to, $from, $body_message, $headers);
 ?>

在html页面中,我插入了一个联系人表单,代码为:

       <form  action="contact.php" method="post">
                        <div class="form-group">
                            <label for="name">
                                Nume
                            </label>
                            <input type="text" name="cf_name" placeholder="" id="name" class="form-control" required="true">
                        </div>
                        <div class="form-group">
                            <label for="email">
                                Email
                            </label>
                            <input type="text" name="cf_email"  placeholder="" id="email" class="form-control" required="true">
                        </div>
                        <div class="form-group">
                            <label for="phone">
                                Telefon
                            </label>
                            <input type="text" name="cf_telefon" id="phone" class="form-control">
                        </div>
                        <div class="form-group">
                            <label for="phone">
                                Mesaj
                            </label>
                            <textarea name="cf_message" placeholder="" rows="5" class="form-control" required="true">
                            </textarea>
                        </div>
                        <input class="btn btn-info" type="submit" value="Trimite" >
<?php if($send_mail) {
if($mail_status){
print "succes";
exit();
}
else {
print "eroare";
}
        }       
?>
                    </form>

电子邮件已成功发送,但邮件未显示。按下发送按钮后,联系人表单返回空白页。我想返回带有消息的同一页。(水刷新)

也许存在另一种方法?用get或类似的东西?

谢谢你的帮助!

将您的PHP放在联系人表单所在页面的顶部。

则更改:<form action="contact.php" method="post">

<form action="" method="post">

您还需要将name="submit"添加到提交按钮字段,然后包装:

if (isset($_POST['submit'])) {
// code
}

此外,如果你试图确保人们填写所有字段,你应该使用

if (!empty($var))
{
// code
} else
echo "Fill in this field please";
}

只需在html端使用required,就可以轻松绕过required字段。

编辑:一旦满足所有条件,您只需在mail()字段下添加echo"谢谢"或任何您想要的消息,即可获得成功消息,该消息将输出到表单上方的页面。

    if($_POST){
      // send mail code here
      $field_name = $_POST['cf_name'];
      $field_email = $_POST['cf_email'];
      $field_telefon = $_POST['cf_telefon'];
      $field_message = $_POST['cf_message'];
      $mail_to = 'diaconu.eduardstefan@gmail.com';;
      $from = 'Mesaj nou de la:'.$field_name;
      $body_message = 'From: '.$field_name."'n";
      $body_message .= 'E-mail: '.$field_email."'n";
      $body_message .= 'Telefon: '.$field_telefon."'n";
      $body_message .= 'Message: '.$field_message;
      $headers = 'From: '.$field_email."'r'n";
      $headers .= 'Reply-To: '.$field_email."'r'n";
      $mail_status = mail($mail_to, $from, $body_message, $headers);
      if($mail_status){
       echo 'mail send';
      }else{
       echo 'mail not send';
      }
    }
    //place html code here below the php code
           <form  action="" method="post">
                        <div class="form-group">
                            <label for="name">
                                Nume
                            </label>
                            <input type="text" name="cf_name" placeholder="" id="name" class="form-control" required="true">
                        </div>
                        <div class="form-group">
                            <label for="email">
                                Email
                            </label>
                            <input type="text" name="cf_email"  placeholder="" id="email" class="form-control" required="true">
                        </div>
                        <div class="form-group">
                            <label for="phone">
                                Telefon
                            </label>
                            <input type="text" name="cf_telefon" id="phone" class="form-control">
                        </div>
                        <div class="form-group">
                            <label for="phone">
                                Mesaj
                            </label>
                            <textarea name="cf_message" placeholder="" rows="5" class="form-control" required="true">
                            </textarea>
                        </div>
                        <input class="btn btn-info" type="submit" value="Trimite" >
                    </form>