javascript - MySQL 注册连接错误

标签 javascript php mysql json mysqli

我在网站上创建的注册选项有问题。对于我的注册选项,我完全按照本教程进行操作:https://code.tutsplus.com/tutorials/building-a-sleek-ajax-email-signup-form--net-13645

它在我的测试网站上运行得非常顺利,但现在我已将所有内容移至另一台服务器,我收到两种不同类型的错误消息。

第一个: Error1

该错误涉及我的 javascript 文件中的以下行:

var responseData = jQuery.parseJSON(data),

这就是 Safari、Firefox 和 Opera 告诉我的。然后Chrome也报这个错误: Error2

这可能是因为 PHP7 中删除了 mysql 功能吗?我的新服务器使用 PHP 5.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;
    }
    ?>

我必须用新的 mysqli_connect() 重写它吗?我该怎么做呢? 但我仍然面临第一个问题...... 有谁知道我如何解决这两个问题?非常感谢!

最佳答案

选项 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(); ?>

关于javascript - MySQL 注册连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48086228/

相关文章:

javascript - Windows 7 上的 ipc 传输 zmq.connect() 函数失败

php - RewriteRule 不适用于生产服务器

javascript - 不同索引的多个文件上传问题

php - PHP 中的 mysql_fetch_assoc() 错误

javascript - 尝试添加 slideToggle() 函数但它不起作用

javascript - 从类名中找到前一个是textnode

javascript - 如何按后缀/扩展名过滤所有 gulp 任务?

php mysql 如果总和不起作用

php - 用户可以使用直接链接访问 protected 页面。如何创建重定向?

php - 获取特定订单