HTML-форма не может отправить в файл PHP

У меня есть контактная форма на моем веб-сайте, которую я хочу отправить по электронной почте, я настроил ее, где «onsubmit» она отправит в функцию js и проверит, заполнены ли все входные данные. Затем он переходит к мой файл php. Однако, после того, как я нажму отправить, он говорит: «Эта страница не работает». Моя функция JS работает отлично, только не мой php.

контакт.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;
    }

}

контакт.php

<?php

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

      $mailTo = "[email protected]";
      $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");
  }

?>

если функция проверки прошла успешно, вам нужно ВОЗВРАТИТЬ значение

Professor Abronsius 28.02.2019 17:44

"Моя функция JS работает отлично" Нет, ваша функция никогда не возвращает true.

Teemu 28.02.2019 17:44
This page isn't working — это общая ошибка PHP. Вам нужно посмотреть журналы ошибок сервера, чтобы узнать, почему он их выдает. Я предполагаю, что это пропущенная точка с запятой в конце $lname = $_POST['last_name']
aynber 28.02.2019 17:46

URL-адрес действия может быть неверным, проверьте путь "php/contact.php"

Javad Alirezaeyan 28.02.2019 17:51

Просто предупреждение. Код PHP, который обрабатывает запрос POST и отправляет электронное письмо, имеет очень мало способов проверки предоставленных данных - код проверки на стороне клиента может быть легко отменен, атрибуты элементов изменены, и тогда PHP выйдет из строя.

Professor Abronsius 28.02.2019 17:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
54
1

Ответы 1

Эти строки могут помочь вам:

сначала вставьте эту функцию рядом с вашей

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);
}

Затем вызовите это после ваших переменных

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

Другие вопросы по теме