如何添加到联系表 "Your message has been received"

How to add to contact form "Your message has been received"

为了节省您的时间,我有两张联系表的屏幕截图。

我收到的消息 "Thank you. Your message has been received" 也不是预期结果,而是新的 window。如何将消息放入该输入元素中?我哪里错了? You can check my contact form by this link 发送任何消息即可。 非常感谢您的时间和答复。

<form action="contact/form-handler.php" method="post">
            <fieldset>
              <div class="form-row">
              <div class="form-group col-md-6">
                    <input type="text" class="form-control" name="name" id="name" placeholder="Your Name"/>
                  </div>
                 <div class="form-group col-md-6">
                    <input type="text" class="form-control" name="email" id="email" placeholder="Your Email"/>
                  </div>
                  </div>         
               <div class="form-group">
                    <input type="text" class="form-control" name="subject" id="subject" placeholder="Subject"/>
                  </div>
                 <div class="form-group">
                    <textarea class="form-control" name="message" rows="5" data-rule="required" data-msg="Please write something for us" placeholder="Message"></textarea>
                  </div>
                  <div>
                    <input type="hidden" name="hidden" value="" />

                       <div class="nocomment">
                    <label for="nocomment"></label>
                    <input id="nocomment" class="nocomment" value="" name="nocomment" />
                  </div>
                 <div class="text-center">
                    <input type="submit" value="Send Message" name="submit"/>
                       <input type="reset" value="Clear Message" name="reset"/>
                  </div>
                </div>

                <input type="hidden" name="v_error" id="v-error" value="Required" />
                <input type="hidden" name="v_email" id="v-email" value="Enter a valid email" />
            </fieldset>
          </form>

还有我的contact/form-handler.php

<?php
include('SMTPClass.php');
$emailto = 'myemail.com';

    // retrieve from parameters
    $emailfrom = isset($_POST["email"]) ? $_POST["email"] : "";
    $nocomment = isset($_POST["nocomment"]) ? $_POST["nocomment"] : "";
    $subject = 'Email from InWebWorld';
    $message = '';
    $response = '';
    $response_fail = 'There was an error verifying your details.';

        // Honeypot captcha
        if($nocomment == '') {

            $params = $_POST;
            foreach ( $params as $key=>$value ){

                if(!($key == 'ip' || $key == 'emailsubject' || $key == 'url' || $key == 'emailto' || $key == 'nocomment' || $key == 'v_error' || $key == 'v_email')){

                    $key = ucwords(str_replace("-", " ", $key));

                    if ( gettype( $value ) == "array" ){
                        $message .= "$key: \n";
                        foreach ( $value as $two_dim_value )
                        $message .= "...$two_dim_value<br>";
                    }else {
                        $message .= $value != '' ? "$key: $value\n" : '';
                    }
                }
            }

        $response = sendEmail($subject, $message, $emailto, $emailfrom);

        } else {

            $response = $response_fail;
        }

    echo $response;

// Run server-side validation
function sendEmail($subject, $content, $emailto, $emailfrom) {

    $from = $emailfrom;
    $response_sent = 'Thank you. Your messsage has been received.';
    $response_error = 'Error. Please try again.';
    $subject =  filter($subject);
    $url = "Origin Page: ".$_SERVER['HTTP_REFERER'];
    $ip = "IP Address: ".$_SERVER["REMOTE_ADDR"];
    $message = $content."\n$ip\r\n$url";

    // Validate return email & inform admin
    $emailto = filter($emailto);

    // Setup final message
    $body = wordwrap($message);

    // Create header
    $headers = "From: $from\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/plain; charset=utf-8\r\n";
    $headers .= "Content-Transfer-Encoding: quoted-printable\r\n";

    // Send email
    $mail_sent = @mail($emailto, $subject, $body, $headers);
    $response = $mail_sent ? $response_sent : $response_error;

    return $response;
}

// Remove any un-safe values to prevent email injection
function filter($value) {
    $pattern = array("/\n/", "/\r/", "/content-type:/i", "/to:/i", "/from:/i", "/cc:/i");
    $value = preg_replace($pattern, "", $value);
    return $value;
}

exit;

?>

如果此 php 代码在 contact/form-handler.php 而不是 echo $response; 中,您应该重定向回您的联系页面并显示消息,例如
header('Location: contact_page_url?message='.urlencode($response));

并在您的联系页面中,在您的表格下方输入:

<script>
    function findGetParameter(parameterName) {
        var result = null, tmp = []; 
        location.search.substr(1).split("&").forEach(function (item){ 
            tmp = item.split("="); 
            if (tmp[0] === parameterName) 
                result = decodeURIComponent(tmp[1]); 
        });
        return result;
    }
    document.querySelector('#nocomment').value = findGetParameter('message') || '';            
</script>