500内部服务器错误(联系表单,PHP)

时间:2017-05-24 10:44:30

标签: javascript php

我们正在本地服务器上运行一个网站。将所需数据输入联系表单并单击发送按钮后,我们得到“500内部服务器错误”。我假设这与本地服务器的PHP邮件配置有关。

PHP:

<?php
if(isset($_POST["name"]) && isset($_POST["email"]) && isset($_POST["msg"])){
  $name = $_POST["name"];
  $email = $_POST["email"];
  $subject = $_POST["subject"];
  $msg = nl2br($_POST["msg"]);
  $to = "info@companyname.com";
  $from = $email;
  $message = "<b>Name:</b> ".$name." <br><b>E-mail:</b> ".$email." <br><b>Subject:</b> ".$subject." <br><p> ".$msg." </p>";
  $headers = "MIME-Version: 1.0" . "\r\n";
  $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
  $headers .= "From: $from" . "\r\n";
    if(mail($to, $subject, $message, $headers)){
        echo "Success";
    }else{
        echo "The server failed to send the message. Please try again later.";
    }
}
?>

JS:

function _(id){return document.getElementById(id);}
function submitForm(){
  _("submit").disabled = true;
  _("status").innerHTML = "Please wait...";

  var formdata = new FormData();
  formdata.append("name", _("name").value);
  formdata.append("email", _("email").value);
  formdata.append("subject", _("subject").value);
  formdata.append("msg", _("msg").value);

  var ajax = new XMLHttpRequest();
  ajax.open("POST", "contact.php");
  ajax.onreadystatechange = function(){
    if(ajax.readyState == 4 && ajax.status == 200){
      if(ajax.responseText == "Success"){
        _("status").innerHTML = "";
        _("response").innerHTML = "Your message has been successfully sent.";
      }else{
        _("status").innerHTML = ajax.responseText;
        _("submit").disabled = false;
      }
    }
  }
  ajax.send(formdata);
}

2 个答案:

答案 0 :(得分:0)

我认为您的问题是由SMTP服务器配置引起的。代码中没有语法错误。如果php将在错误的文件夹中,它将返回404错误而不是500。 尝试注释php文件的if / else部分,以确保文件的其他部分正常工作。

答案 1 :(得分:0)

解决。问题出在我们在MS IIS上运行的本地服务器的配置。