我在网站上创建的注册选项有问题。对于我的注册选项,我完全按照本教程进行操作:https://code.tutsplus.com/tutorials/building-a-sleek-ajax-email-signup-form--net-13645
它在我的测试网站上运行得非常顺利,但现在我已将所有内容移至另一台服务器,我收到两种不同类型的错误消息。
该错误涉及我的 javascript 文件中的以下行:
var responseData = jQuery.parseJSON(data),
这就是 Safari、Firefox 和 Opera 告诉我的。然后Chrome也报这个错误:
这可能是因为 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/