【问题标题】:Internal Serve Error POST 500 AJAX, jQuery + PHP内部服务器错误 POST 500 AJAX、jQuery + PHP
【发布时间】:2017-04-16 06:54:54
【问题描述】:

我整天都在尝试调试,但我无法让内部错误消失。

此代码的功能是它会从表单中获取一封电子邮件并通过数据库运行它以检查数据库中是否已经有一封电子邮件。

如果有,则会显示错误信息 vendor.js:9566 POST http://snacktally.com/emailcheck.php 500 (Internal Server Error)。

这是 jQuery:

$("#userform").submit(function(event) {
  var emailtext = {
    email: $("#Email").val();
  };
  $.ajax({
    type: "POST",
    url: "emailcheck.php",
    data: emailtext,
    dataType: 'json',
    success: function(response, textStatus, req) {
      if (response == '1') {
        //default action
      } else {
        $("#emailField").css("border-left", "2px solid #ff3333");
        $("#passField").css("border-left", "2px solid #FCFCFC");
        $("#passVerField").css("border-left", "2px solid #FCFCFC");
        $("h1").text("Email Taken").css("color", "#ff3333");
        event.preventDefault();
      }
    },
    error: function(xhr, ajaxOptions, thrownError) {
      console.log(xhr.status);
      console.log(xhr.responseText);
      console.log(thrownError);
    }
  });
});

这里是 PHP

<?php
#sql_host, user pass and db defined up here
$con = mysqli_connect($sql_host,$sql_user,$sql_pass,$sql_db);

#obtains the email from the php file
if(isset($_POST('email')))
{
    $email = $_POST('email');

    #runs it through the database
    $emailver = "SELECT `Email` FROM `SnackTally`.`User` WHERE `Email` = 
    '$email'";

    if($select = mysqli_query($con, $emailver)){
        #output 0 = false, not a valid email
        if(mysqli_fetch_assoc($select) > 0)
        {
            #$emailErr = "Email already exists";
            mysqli_free_result($select);
            mysqli_close($con);
            echo '0';
        }
        else
        {
            mysqli_free_result($select);
            mysqli_close($con);
            echo '1';
        }
    }
}else{
    mysqli_close($con);
    echo '0';
}
?>

【问题讨论】:

  • 收到 500 错误意味着您的 PHP 代码有问题(不是由 Javascript 部分引起的)。当您发布到该 URL 时,查看服务器正在记录的特定错误将非常有帮助。它将准确解释您的 PHP 代码中的哪些地方出现问题。

标签: php server runtime-error


【解决方案1】:

$_POST('email') 更改为$_POST['email']

阅读this 以调试您的代码

【讨论】:

    【解决方案2】:

    将 $_POST('email') 替换为 $_POST['email']

    【讨论】: