我在使用 ajax 登录表单时遇到问题。我从 ajax 收到一个错误,说我的 login_check.php 文件中的用户名和密码变量未定义。然而,当我将变量初始化为空白时,错误就消失了。问题是,当我将变量初始化为空白时,即使我在登录框中输入了正确的信息,它也不会让我登录。我确定问题很小,但我就是看不到。我只需要 PHP 和 AJAX 一起工作,然后我就完成了。提前致谢。
login_check.php
<?php
require_once 'config.php';
require_once 'login.class.php';
$error = NULL;
$success = FALSE;
$username = $_POST['username'];
$password = $_POST['pass'];
$login = new Login();
//Connect to MYSQL Database server
$connect = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Could not connect to MYSQL Database.");
$result = mysql_select_db(DB_NAME, $connect) or die("Could not connect to MYSQL table.");
//Clean Data to prevent malicous injections
$username = mysql_real_escape_string(strip_tags(stripcslashes(trim($_POST['username']))));
$password = $login -> encrypt(mysql_real_escape_string(strip_tags(stripcslashes(trim($_POST['pass'])))));
$sql = mysql_query("SELECT * FROM admin WHERE username = '$username' AND password = '$password'") or die("Query to database failed.");
$numrows = mysql_num_rows($sql);
$row = mysql_fetch_array($sql);
if ($numrows > 0) {
session_start();
$_SESSION['username'] = $row['username'];
$success = TRUE;
echo json_encode(array("success" => "Login successful."));
} else {
$success = FALSE;
echo $error = 'Invalid username or password!';
echo json_encode(array("error" => "Invalid username or password! (PHP response)"));
}
?>
查询文件
$('#login_form').submit(function(e) {
e.preventDefault();
var username = $('.username').val();
var password = $('.password').val();
$.ajax({
type : "POST",
url : "includes/login_check.php",
data : "Username=" + username + "&Password=" + password,
dataType : 'json',
cache : false,
success : function(data) {
if(data.error) {
$('.login div.error').show().html(data.error);
} else {
$('.login div.success').show().html(data.success);
}
//return false;
},
error : function(jqXHR, textStatus, errorThrown) {
alert("error " + textStatus + ": " + errorThrown);
},
beforeSend : function() {
$(".load").html("Loading...");
}
});
});
顺便说一句,来自 AJAX 的错误是:
错误解析器错误:SyntaxError:JSON.parse:意外字符
再次感谢各位朋友。