2016-08-01 9 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> 

正常に送信されたメールが、メッセージショーではありません。送信ボタンを押すと、コンタクトフォームは空白のページを返します。私はメッセージと同じページを返すしたい。

これを行う別の方法がありますか?ゲットなどで?

ありがとうございました!

+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 

} 

また、あなたがしようとしている場合人々がすべてのフィールドに記入するようにしてください。

必須フィールドは、html側の必須フィールドを使用するだけで簡単にバイパスできます。

EDIT:すべての条件が満たされたら、フォームの上のページに出力される成功メッセージのために、「感謝」または任意のメッセージをmail()フィールドの下に追加するだけです。

関連する問題