简体   繁体   中英

HTML Form can't send to PHP file

I have a contact form on my website that I want to send to an email, I have it set up where "onsubmit" it will send to a js function and check if all the inputs are filled in. Then, it proceeds to go to my php file. However, after I hit submit it says, "This page isn't working". My JS Function works perfectly just not my php.

contact.html

  <p id="required">Required <span style="color: red;">*</span></p>
  <script src="js/formvalidate.js"></script>
  <form class="contact-form" name="form" action="php/contact.php" onsubmit="return formValidate()" method="post">
    <label for="first_name" id="label_first" class="contact-label">First Name<span class="asterisk" id="required_fname"></span></label><br>
    <input type="text" id="first_name" name="first_name" class="contact-input" placeholder="First Name"><br>
    <label for="last_name" id="label_last" class="contact-label">Last Name<span class="asterisk" id="required_lname"></span></label><br>
    <input type="text" id="last_name" name="last_name" class="contact-input" placeholder="Last Name"><br>
    <label for="email" id="label_email" class="contact-label">Email<span class="asterisk" id="required_email"></span></label><br>
    <input type="email" id="email" name="email" class="contact-input" placeholder="Email"><br>
    <label for="subject" id="label_subject" class="contact-label">Subject<span class="asterisk" id="required_subject"></span></label><br>
    <input type="text" id="subject" name="subject" class="contact-input" placeholder="Subject"><br>
    <label for="message" id="label_message" class="contact-label">First Name<span class="asterisk" id="required_message"></span></label><br>
    <textarea id="message" name="message" class="contact-message" placeholder="Type here..."></textarea><br>
    <button type="submit" id="submit" name="submit" class="submit">Submit</button>
  </form>

formvalidate.js

function formValidate(){
  var form = document.forms["form"]
  var first_name = form.elements["first_name"].value;
  var last_name = form.elements["last_name"].value;
  var email = form.elements["email"].value;
  var subject = form.elements["subject"].value;
  var message = form.elements["message"].value;
  var output = " *";
  var result = false;
    if (first_name == "" || last_name == "" || email == "" || subject == "" || message == "") {
      alert('Please fill out all required fields');
      document.getElementById('required_fname').innerHTML = output;
      document.getElementById('required_lname').innerHTML = output;
      document.getElementById('required_subject').innerHTML = output;
      document.getElementById('required_email').innerHTML = output;
      document.getElementById('required_message').innerHTML = output;
      document.getElementById('required').style.visibility = "visible";
      return false;
    }
    else{
      alert('Thanks for contacting me');
        result = true;
    }

}

contact.php

<?php

  if (isset($_POST['submit'])) {
      $fname = $_POST['first_name'];
      $lname = $_POST['last_name']
      $subject = $_POST['subject'];
      $mailFrom = $_POST['email'];
      $message = $_POST['message'];

      $mailTo = "database@terrytowell.com";
      $headers = "From: ".$mailFrom;
      $name = $fname . " " . $lname;
      $txt = "You have received an Email from " . $name . "\n\n" .$message;

      mail($mailTo, $subject, $txt, $headers);
      header("Location: ../contact.html?mailsend");
  }

?>

This lines may help you :

first insert this function next to yours

function send_mail($to, $from, $title, $message) {

    $headers = "From: " . strip_tags($from) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

    mail($to, $title, $message, $headers);
}

Then call this after your variables

send_mail($_POST['receiver-email'], $_POST['title(maybe website email)'], "title", "here some other post data from your choice"));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM