检查用户名和密码是否匹配或可用 - Jquery

2024-04-02

我的代码出现问题,用户名和密码不匹配。 这是我的输出。当用户名和密码不匹配时,系统会提示用户名和密码不匹配不匹配,但是,当用户名和密码匹配时,就会出现一条消息,表明它是match下面是我的代码:

html代码

<body>  
  <div class="container box">  
   <div class="form-group">  
    <h3 align="center">Live Username Available or not By using PHP Ajax Jquery</h3><br />  
    <label>Enter Username</label>  
    <input type="text" name="username" id="username" class="form-control" />
    <input type="password" name="password" id="password" class="form-control" />

    <span id="availability"></span>
    <br /><br />
    <button type="button" name="register" class="btn btn-info" id="register" disabled>Register</button>
    <br />
   </div>  
   <br />  
   <br />  
  </div>  
 </body>  
</html>  

脚本代码

  <script>  
     $(document).ready(function(){  
       $('#username','#password').blur(function(){

         var username = $(this).val();
         var password = $(this).val();

         $.ajax({
          url:'check.php',
          method:"POST",
          data:{user_name:username, password:password},
          success:function(data)
          {
           if(data != '1')
           {
            $('#availability').html('<span class="text-danger">Username and Password not Match</span>');
            $('#register').attr("disabled", true);
           }
           else
           {
            $('#availability').html('<span class="text-success">Username and Password Available</span>');
            $('#register').attr("disabled", false);
           }
          }
         })

      });
     });  
    </script>

检查.php- 我的数据库连接和从数据库获取它的查询

 <?php  
    //check.php  
    $connect = mysqli_connect("localhost", "username", "", "dbname"); 
    if(isset($_POST["user_name"] && $_POST["password"]))
    {
     $username = mysqli_real_escape_string($connect, $_POST["user_name"]);
     $password = mysqli_real_escape_string($connect, $_POST["password"]);
     $query = "SELECT * FROM admin WHERE username = '".$username."' AND password = '".$password."' ";
     $result = mysqli_query($connect, $query);
     echo mysqli_num_rows($result);
    }
 ?>

Notes

  • 您对 SQL 注入持开放态度。您应该改用准备好的语句。请阅读如何防止 PHP 中的 SQL 注入? https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php
  • 您不应以纯文本形式存储密码。相反,使用 PHPpassword_hash https://www.php.net/manual/en/function.password-hash.php and password_verify https://www.php.net/manual/en/function.password-verify.php函数进行哈希和验证。

Answer

您正在使用isset https://www.php.net/manual/en/function.isset.php错误地。要检查是否设置了多个值,请用逗号分隔它们,而不是用&&:

if(isset($_POST["user_name"], $_POST["password"]))

当前的 PHP 代码不会产生任何输出,因为它将因该行上的致命错误而终止。

在 jQuery 中,您没有正确指定多个选择器。它们应该都在同一组引号内:

$('#username, #password').blur(function(){

您还需要更改此代码,这将设置username and password对同一事物的价值观:

var username = $(this).val();
var password = $(this).val();

to

var username = $('#username').val();
var password = $('#password').val();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查用户名和密码是否匹配或可用 - Jquery 的相关文章

随机推荐