Php 使用jquery ajax将数据发布到数据库时出现问题

Php 使用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

我已经查阅了很多次教程,我很难找出我的代码哪里错了。我能够运行我的php文件并将我的信息发送到我的数据库中,因此我知道我的连接不是问题所在,所以我认为这是我的index.html文件。这可能与我如何实现jquery有关,但我也不知道这一点

Index.html

 <!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文件中的内容进行匹配,但在单击按钮时仍然没有发生任何事情。