联系表单无法访问php脚本[关闭]

I am trying to configure my 'send message/submit' button so that when clicked it accesses a php file in the local directory and executes the code to email the corresponding data.

layout

The HTML code shows the following:

   <section class="contact-us">
    <div class="form-wrapper">
        <div class="contact-form">

            <form>
                <fieldset>
                    <div class="control-group">
                        <input id="Field12" name="Field12" placeholder="Full Name" required="" tabindex="1" type="text" value="">
                    </div>
                    <div class="inline-groups">
                        <div class="control-group">
                            <input id="Field3" maxlength="255" name="Field3" placeholder="Email" required="" spellcheck="false" tabindex="2" type="email" value="">
                        </div>
                        <div class="control-group">
                            <input id="Field4" maxlength="255" name="Field4" placeholder="Phone number (optional)" tabindex="3" type="tel" value="">
                        </div>
                    </div>
                    <div class="control-group">
                        <textarea cols="50" id="Field5" name="Field5" placeholder="Let us know what we can do for you!" spellcheck="true" tabindex="4"></textarea>
                    </div>
                    <input id="idstamp" name="idstamp" type="hidden" value="r885sYVzp1O8HO4V4MdnZvkis7E3NZIfZ8CtHRCtCdY">
                    <button class="button" action="send_form_email.php" type="submit">Send message</button>
                </fieldset>
            </form>

The PHP code shows the following:

<?php 
if(isset($_POST['email'])) { 

    // EDIT THE 2 LINES BELOW AS REQUIRED

    $email_to = "matty65622@hotmail.com";

    $email_subject = "Greenmount Engineering | Customer Enquiry";





    function died($error) {

        // your error code can go here

        echo "We are very sorry, but there were error(s) found with the form you submitted. ";

        echo "These errors appear below.<br /><br />";

        echo $error."<br /><br />";

        echo "Please go back and fix these errors.<br /><br />";

        die();

    }



    // validation expected data exists

    if(!isset($_POST['name']) ||

        !isset($_POST['email']) ||

        !isset($_POST['tel']) ||

        !isset($_POST['comments'])) {

        died('We are sorry, but there appears to be a problem with the form you submitted.');       

    }



    $name = $_POST['name']; // required

    $email_from = $_POST['email']; // required

    $telephone = $_POST['tel']; // not required

    $comments = $_POST['comments']; // required



    $error_message = "";

    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

  if(!preg_match($email_exp,$email_from)) {

    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';

  }

    $string_exp = "/^[A-Za-z .'-]+$/";

  if(!preg_match($string_exp,$name)) {

    $error_message .= 'The name you entered does not seem to be valid.<br />';

  }


  if(strlen($comments) < 2) {

    $error_message .= 'The Comments you entered do not appear to be valid.<br />';

  }

  if(strlen($error_message) > 0) {

    died($error_message);

  }

    $email_message = "Form details below.

";



    function clean_string($string) {

      $bad = array("content-type","bcc:","to:","cc:","href");

      return str_replace($bad,"",$string);

    }


    $email_message .= "Name: ".clean_string($name)."
";

    $email_message .= "Email: ".clean_string($email_from)."
";

    $email_message .= "Telephone: ".clean_string($telephone)."
";

    $email_message .= "Comments: ".clean_string($comments)."
";





// create email headers

$headers = 'From: '.$email_from."
".

'Reply-To: '.$email_from."
" .

'X-Mailer: PHP/' . phpversion();

@mail($email_to, $email_subject, $email_message, $headers);  

?>



<!-- include your own success html here -->



Thank you for contacting us. We will be in touch with you very soon.



<?php

}

?>

I am not sure if this code will work 100% yet as I have not tried it, but as you can see the attempt to link the HTML button to the php script only refreshes the page when sent, but when I check my email nothing comes through. <button class="button" action="send_form_email.php"

You have to replace one line of code.

Always use action in form tag so move the action="send_form_email.php" in <form method="post"> tag and your code will run.

A few adjustments need to be done to your code:

  1. Add method="post" attribute to your <form> tag (so the method used is not get).

  2. Add action="send_form_email.php" attribute to your <form> tag (so your form redirects to your script).

  3. Add name="submit" to your <button> tag (so the expression if(isset($_POST["submit"])) in send_form_email.php evaluates to true and the code block gets executed).

  4. Change name attributes of your <input>s according to your $_POST['...'] (so PHP recognizes the input values).

And you should be good to go.