Javascript MySQL注册连接错误

Javascript MySQL注册连接错误,javascript,php,mysql,json,mysqli,Javascript,Php,Mysql,Json,Mysqli,我在网站上创建的注册选项有问题。对于我的注册选项,我完全遵循了本教程: 它在我的测试网站上起到了很好的作用,但现在我已经将所有内容移动到了另一台服务器上,我收到了两种不同类型的错误消息 第一个: 错误与我的javascript文件中的以下行有关: var responseData = jQuery.parseJSON(data), 这就是Safari、Firefox和Opera告诉我的。然后Chrome也报告了这个错误: 这可能是因为PHP7中删除了mysql函数吗?我的新服务器使用PHP

我在网站上创建的注册选项有问题。对于我的注册选项,我完全遵循了本教程:

它在我的测试网站上起到了很好的作用,但现在我已经将所有内容移动到了另一台服务器上,我收到了两种不同类型的错误消息

第一个:

错误与我的javascript文件中的以下行有关:

var responseData = jQuery.parseJSON(data),
这就是Safari、Firefox和Opera告诉我的。然后Chrome也报告了这个错误:

这可能是因为PHP7中删除了mysql函数吗?我的新服务器使用PHP5.6但是… 我的PHP目前看起来是这样的:

    <?php
if(isset($_GET['action'])&& $_GET['action'] == 'signup'){
  mysql_connect('localhost:3306','db_username','db_password');
  mysql_select_db('db_name');

  //sanitize data
  $email = mysql_real_escape_string($_POST['signup-email']);

  //validate email address - check if input was empty
  if(empty($email)){
    $status = "error";
    $message = "You did not enter an email address";
  }
  else if(!preg_match('/^[^\W][a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\.[a-zA-Z]{2,4}$/', $email)){ //validate email address - check if is a valid email address
    $status = "error";
    $message = "Invalid email address";
  }
  else {
    $existingSignup = mysql_query("SELECT * FROM signups WHERE signup_email_address='$email'");
    if(mysql_num_rows($existingSignup) < 1){

  $date = date('Y-m-d');
  $time = date('H:i:s');

  $insertSignup = mysql_query("INSERT INTO signups (signup_email_address, signup_date, signup_time) VALUES ('$email','$date','$time')");
  if($insertSignup){
    $status = "success";
    $message = "You have been signed up";
  }
  else {
    $status = "error";
    $message = "Ooops, there has been a technical error";
  }
}
else {
  $status = "error";
  $message = "This email address has already been registered";
}
  }

      //return json response
      $data = array(
        'status' => $status,
        'message' => $message
      );

      echo json_encode($data);

      exit;
    }
    ?>

选项1

您的服务器可能有更新版本的PHP(>=7.0.0)。 MySQL扩展在PHP5.5.0中被弃用,在7.0.0中被删除

mysql_*函数被删除的原因是它们是在PHP的早期2.0版本中实现的,这意味着它们已经有15年的历史了。这个库限制了MySQL的功能,并且很难维护

如果您是初学者,我建议您寻找MySQLi或PDO_MySQL库教程,如果您有更多经验,也可以自己移植代码

选项2

另一个可能的原因是php.ini文件中禁用了MySQL扩展。要查看有关当前PHP配置的更多信息,请创建并打开包含以下内容的新PHP文件:

<?php phpinfo(); ?>


mysql函数在5.6版中仍然可用。您可能需要在php.ini文件中启用此扩展名。但是如果你转换成mysqli或PDO会更好。第一个问题是因为第二个问题而发生的。错误所抱怨的“F”实际上是错误消息“致命错误:未捕获错误…”的“F”。这是被发送回的内容,而不是JSON。是的,你应该放弃mysql_*函数,就像一个燃烧着的弃用土豆,转而使用PDO或mysqli。简言之-是的,问题是使用
mysql
函数-将数据库代码重写为
mysqli
PDO
可能的重复