2016-08-01 163 views
1

我试图在发送邮件后在html页面显示一条消息。 我不想在警报中使用javascript,发送按钮后只是一个简单的消息。用php发送邮件后返回邮件状态

我做了一个接触PHP页面使用此代码:

<?php 

$field_name = $_POST['cf_name']; 
$field_email = $_POST['cf_email']; 
$field_telefon = $_POST['cf_telefon']; 
$field_message = $_POST['cf_message']; 
$mail_to = '[email protected]';; 
$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> 

电子邮件发送成功,但消息不显示。按下发送按钮后,联系表单返回空白页。我想用消息返回相同的页面。 (ater refresh)

也许存在另一种方式来做到这一点?得到或类似的东西?

感谢您的帮助!

+0

我已经更新我的回答,请在下列方式http://stackoverflow.com/a/38694374/1593084 –

回答

1
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 = '[email protected]';; 
     $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> 
+0

谢谢回复!我在contact.php中插入你的代码,现在,按下发送按钮后,我有一个消息状态的新页面,我不希望这样。我想在发送按钮之后(按下按钮之后)显示消息。为此,有必要在html页面添加我的代码...也许创建一个会话或类似的东西来存储信息。 –

+0

这意味着你不想重定向你的页面,实际上你想在同一页面上显示消息,当点击发送按钮时点击某个物体? –

+0

是的。 :)我想要的。 –

1

将您的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侧内需要被容易地绕过。

编辑:一旦所有条件都满足,你可以简单地添加回声“谢谢”,或者您想要的邮件()字段下一个成功的消息不论消息将输出到上述表单的页面。