我正在尝试构建一个简单的登录页面,该页面利用 jQuery Ajax 使用数据库和表,并在本地开发环境中保存了用户名和密码:Mac 上的 XAMPP。
我承认我对 Ajax 有点生疏,也许这是最大的问题,所以请善待:
每次我点击提交 Ajax 请求时,我都会在 Chrome 的控制台中收到一个 jquery-3.6.0.min.js:2 POST http://localhost:8080/checkUser.php 500 (Internal Server Error)
。 checkUser.php
与 HTML 表单包含在同一文件夹中。
我已经通过 php 测试了我与数据库的连接,所以我觉得问题出在 javascript 中,由于某种原因无法连接到 Ajax URL
。
感谢您提供的任何帮助。对于这段代码的长度,我深表歉意。我将发布我的代码:
基本 HTML 表单
<div class="container">
<div id="div_login">
<h1>Login</h1>
<div id="message"></div>
<div>
<input type="text" class="textbox" id="txt_uname" name="txt_uname" placeholder="Username">
</div>
<div>
<input type="password" class="textbox" id="txt_pwd" name="txt_pwd" placeholder="Password">
</div>
<div>
<input type="button" value="Submit" name="but_submit" id="but_submit">
</div>
</div>
我的 jQuery Ajax 调用
$(document).ready(function() {
$("#but_submit").click(function() {
var username = $("#txt_uname").val().trim();
var password = $("#txt_pwd").val().trim();
if (username != "" && password != "") {
$.ajax({
url: 'checkUser.php',
type: 'post',
data: {
username: username,
password: password
},
success: function(response) {
var msg = "";
if (response == 1) {
window.location = "home.php";
} else {
msg = "Invalid username and password!";
}
$("#message").html(msg);
}
});
}
});
});
我的checkUser.php
<?php
session_start();
$host = "localhost";
$user = "root";
$password = "";
$dbname = "users";
$con = mysqli_connect($host, $user, $password, $dbname);
if (!$con) {
die("Connection failed: " . mysqli_connect_error());
}
$uname = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, $_POST['password']);
if ($uname != "" && $password != "") {
$sql_query = "select count(*) as cntUser from users where username='".$uname."' and password='".$password."'";
$result = mysqli_query($con, $sql_query);
$row = mysqli_fetch_array($result);
$count = $row['cntUser'];
if ($count > 0) {
$_SESSION['uname'] = $uname;
echo 1;
} else {
echo 0;
}
}