2016-07-27 5 views
0

私はPHPについては初心者です。PHPの連絡フォーム成功メールを送信するが、あなたに感謝のためにリダイレクトできない

これは、ユーザーが質問を送信できる「お問い合わせ」フォームです。 現在、送信された質問をGoogleのメールに直接送信することに成功しています。しかし、提出後、ありがとうございましたページにリダイレクトできませんでした。 誰かが私を助けることを心から願っています。道に迷いました。コードは以下のとおりです。前もって感謝します。

<?php 

// Define some constants 
define("RECIPIENT_NAME", "Choice Baby Enquiry"); 
define("RECIPIENT_EMAIL", "[email protected]"); 

// Read the form values 
$success = false; 
$senderName = isset($_POST['name']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['name']) : ""; 
$senderEmail = isset($_POST['email']) ? preg_replace("/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['email']) : ""; 
$subject = isset($_POST['subject']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['subject']) : "Enquiry"; 
$message = isset($_POST['message']) ? preg_replace("/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message']) : ""; 

// If all values exist, send the email 
if ($senderName && $senderEmail && $message) { 
    $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">"; 
    $headers = "From: " . $senderName . " <" . $senderEmail . ">"; 
    $success = mail($recipient, $subject, $message, $headers); 
} 

if (mail($recipient, $subject, $message, $headers)) { 
    header ("Location: thanks.html"); 
    exit(); 
} 

?> 

---- EDIT ----ここ

はHTMLです:

<section class="contact_us_container"> 
      <div class="container"> 
       <div class="row"> 
        <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" style="text-align:center;"> <!-- section title --> 
         <h2>Get In Touch With Us</h2> 
         <p>Type your question here and we will get back to you as soon as possible.</p> 
        </div> <!-- End section title --> 
        <div class="col-lg-8 col-md-8 col-sm-12 col-xs-12 form_holder"> <!-- form holder --> 
         <form action="includes/sendemail.php" class="contact-form"> 
          <input class="form-control name" type="text" name="name" placeholder="Your Name"> 
          <input class="form-control email" type="email" name="email" placeholder="Your Email"> 
          <input class="form-control" type="text" name="subject" placeholder="Subject"> 
          <textarea name="message" placeholder="Your Message"></textarea> 
          <button type="submit" class="submit">submit now<i class="fa fa-arrow-circle-right"></i></button> 
         </form> <!-- End form holder --> 
        </div> 
        <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12 pull-right address"> 
         <address> 
          <div class="icon_holder float_left"><span class="icon icon-Pointer"></span></div> 
          <div class="address_holder float_left">M2-19-03,<br>8trium Tower, Jalan Cempaka SD 12/5,<br>Bandar Sri Damansara,52000 KL</div> 
         </address> 
         <address class="clear_fix"> 
          <div class="icon_holder float_left"><span class="icon icon-Plaine"></span></div> 
          <div class="address_holder float_left">[email protected]</div> 
         </address> 
         <address class="clear_fix"> 
          <div class="icon_holder float_left"><span class="icon icon-Phone2"></span></div> 
          <div class="address_holder float_left">+ 603 6735 5374</div> 
         </address> 
        </div> 
       </div> 
      </div> 
     </section> 

答えて

0

HTMLコード:

<form action="includes/sendemail.php" class="contact-form" method="post"> 
    <input class="form-control name" type="text" name="name" placeholder="Your Name"> 
    <input class="form-control email" type="email" name="email" placeholder="Your Email"> 
    <input class="form-control" type="text" name="subject" placeholder="Subject"> 
    <textarea name="message" placeholder="Your Message"></textarea> 
    <button type="submit" class="submit" name="btnSubmit">submit now<i class="fa fa-arrow-circle-right"></i></button> 
</form> 

PHPコード:含み/ sendemail.php

<?php 
if(isset($_POST["btnSubmit"])) 
{ 
    // Define some constants 
    define("RECIPIENT_NAME", "Choice Baby Enquiry"); 
    define("RECIPIENT_EMAIL", "[email protected]"); 

    // Read the form values 
    $success = false; 
    $senderName = isset($_POST['name']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['name']) : ""; 
    $senderEmail = isset($_POST['email']) ? preg_replace("/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['email']) : ""; 
    $subject = isset($_POST['subject']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['subject']) : "Enquiry"; 
    $message = isset($_POST['message']) ? preg_replace("/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message']) : ""; 

    // If all values exist, send the email 
    if ($senderName && $senderEmail && $message) { 
     $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">"; 
     $headers = "From: " . $senderName . " <" . $senderEmail . ">"; 
     $success = mail($recipient, $subject, $message, $headers); 
    } 

    if (mail($recipient, $subject, $message, $headers)) 
    { 
     header ("Location: thanks.html"); 
     exit(); 
    } 
} 
?> 

私はこのようなjqueryの/ AJAXを使用します。..このコードで

+0

にそれはまだ静的とどまったが、メールはまだ正常に送信されます。 – nabilahakram

+0

ありがとうございましたか、問題はまだ解決していますか? – Hardik

+0

私はまだ解答の研究にもかかわらず問題を抱えています。 – nabilahakram

0

を置き換えます。私はあなたのフォームは、あなたがあるあなたのPHPファイルが

<!DOCTYPE html> 

<html lang="en-US"> 
<head> 
<meta charset="UTF-8"/> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<meta name="description" content=""> 
<meta name="keywords" content=""> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
<script type="text/javascript" src="functions.js"></script> 
</head> 

<body> 

    <form role="form" method="post" id="subscribe"> 
     <input type="text" name="name" id="name" value="" placeholder="Name"/> 
     <input type="email" name="email" id="email" value="" placeholder="Email"/> 
     <input type="text" name="subject" id="subject" value="" placeholder="Subject"/> 
     <textarea rows="4" cols="50" name="message" id="message"> </textarea> 
     <input type="submit" class="button" name="submit" value="Submit"> 
    </form> 
    <div class="message"></div> 
    <div class="message-notice"></div> 

</body> 
</html> 

があるファイルがあるとし

。作品PHPスクリプト(それがsubscribe.php呼ばれると仮定)

<?php 

// Define some constants 
define("RECIPIENT_NAME", "Choice Baby Enquiry"); 
define("RECIPIENT_EMAIL", "[email protected]"); 

// Read the form values 
$success = false; 
$senderName = isset($_POST['name']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['name']) : ""; 
$senderEmail = isset($_POST['email']) ? preg_replace("/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['email']) : ""; 
$subject = isset($_POST['subject']) ? preg_replace("/[^\.\-\' a-zA-Z0-9]/", "", $_POST['subject']) : "Enquiry"; 
$message = isset($_POST['message']) ? preg_replace("/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message']) : ""; 

// If all values exist, send the email 
if ($senderName && $senderEmail && $message) { 
    $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">"; 
    $headers = "From: " . $senderName . " <" . $senderEmail . ">"; 
    $success = mail($recipient, $subject, $message, $headers); 
} 

if (mail($recipient, $subject, $message, $headers)) { 
    //header ("Location: thanks.html"); 
    echo "success"; 
    exit(); 
}else{ 
    echo "fail"; 
} 

?> 

あなたが不足している何がこのjavascriptのスクリプトです:

;(function($, window, document, undefined) { 
var $win = $(window); 
var $doc = $(document); 

$doc.ready(function() { 

    $('#subscribe').submit(function() { 
     $.ajax({ 
      url: 'subscribe.php', 
      data: $('#subscribe').serialize(), 
      type: 'POST', 
      success: function(msg) { 
       if(msg=="success"){ 
        $("#subscribe").hide(); //Hide your form 
        $(".message").show(); //Show the message 
        $(".message").html('<span style="color:green;">You have successfully subscribed to our mailing list.</span>'); 
        window.setTimeout(function(){ 
         window.location.href = "http://www.yoururl.com/thanks.html"; 
        }, 10000); //After 10seconds you will be redirect to the thanks page. 
        document.getElementById("subscribe").reset(); 
       } else { 
        $(".message-notice").fadeIn("slow"); 
        $(".message-notice").html(msg); 
       } 
      } 
     }); 
     return false; 
    }); 
}); 

})(jQuery, window, document); 

希望します。

+0

こんにちは、ありがとうございました。心から感謝する。私はそれを試して、それはまだ動作しませんでした。ありがとう、結構です。 – nabilahakram

+0

こんにちはnabilahakram、前に小さなjsエラーがあった。今すぐ修正。必要に応じて、コードをコピーして貼り付けてください。私は今試して、それは動作します。あなたがまだ困っている場合は教えてください。 – Vince

+0

あなたのPHPコードも見てください。2行のコードを追加しました。 'echo" success ";'と 'echo"は失敗しました。 'if文の中で。 – Vince

0

コードの先頭にob_start()を置こうとしましたか?

JavaScriptはどうですか?document.location

0

プラス方式=「ポスト」formタグ

<form action="includes/sendemail.php" class="contact-form" method="post"> 
関連する問題