Php 使用jquery ajax将数据发布到数据库时出现问题
我已经查阅了很多次教程,我很难找出我的代码哪里错了。我能够运行我的php文件并将我的信息发送到我的数据库中,因此我知道我的连接不是问题所在,所以我认为这是我的index.html文件。这可能与我如何实现jquery有关,但我也不知道这一点 Index.htmlPhp 使用jquery ajax将数据发布到数据库时出现问题,php,jquery,ajax,Php,Jquery,Ajax,我已经查阅了很多次教程,我很难找出我的代码哪里错了。我能够运行我的php文件并将我的信息发送到我的数据库中,因此我知道我的连接不是问题所在,所以我认为这是我的index.html文件。这可能与我如何实现jquery有关,但我也不知道这一点 Index.html <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href=&quo
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="login.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#login').click(function(event){
event.preventDefault();
var username =$('#use').val();
var pass = $('#pass').val();
$.ajax({
url: 'login.php',
method:'POST',
data:
{
User: username,
Pass: pass
},
success:function(result){
alert(result);
}
});
});
});</script>
</head>
<body>
<div class="login-page">
<div class="form">
<form class="register-form">
<input type="text" placeholder="name"/>
<input type="password" placeholder="password"/>
<input type="text" placeholder="email address"/>
<button>create</button>
<p class="message">Already registered? <a href="#">Sign In</a></p>
</form>
<form class="login-form">
<input type="text" id="use" placeholder="username"/>
<input type="password" id="pass" placeholder="password"/>
<button type="submit" id="login">login</button>
<p class="message">Not registered? <a href="#">Create an account</a></p>
</form>
</div>
</div>
</body>
</html>
$(文档).ready(函数(){
$(“#登录”)。单击(函数(事件){
event.preventDefault();
var username=$('#use').val();
var pass=$('#pass').val();
$.ajax({
url:'login.php',
方法:'POST',
数据:
{
用户:用户名,
通过:通过
},
成功:功能(结果){
警报(结果);
}
});
});
});
创造
登录
连接到我的数据库的PHP代码
<?php
$dbname = 'project test';
$dbuser = 'root';
$dbpass = '';
$dbhost = 'localhost';
$username=$_POST['use'];
$password=$_POST['pass'];
$conn= mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO user (User, Pass)
VALUES ('{$username}','{$password}')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close(); ;
?>
在index.html文件中,您正在发送用户
和密码
值。但是,当您试图在php文件中获取这些值时,您正在尝试获取使用
和传递
值。他们的名字不匹配。名称需要匹配才能正确获得值。您的代码中有输入错误,您在ajax中通过了User
和pass
,您使用$\u POST['use']
,$\u POST['pass']
等方式获得它,即:User!=使用
和相同的方法进行其他操作。您的代码可以使用完全开放的SQL注入,不要在生产中使用。这只是为了测试。我甚至还不能获取表单数据,所以甚至不能考虑安全性。使用内置PDO,这样我就可以将php文件与ajax文件中的内容进行匹配,但在单击按钮时仍然没有发生任何事情。