检查用户名和密码是不是匹配或可用 - Jquery
Posted
技术标签:
【中文标题】检查用户名和密码是不是匹配或可用 - Jquery【英文标题】:Checking if Username and Password is match or available - Jquery检查用户名和密码是否匹配或可用 - Jquery 【发布时间】:2019-10-02 02:23:13 【问题描述】:我的代码存在用户名和密码不匹配的问题。 这是我的输出。用户名和密码不匹配时,会提示不匹配,而用户名和密码匹配时,会提示匹配 下面是我的代码:
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>
check.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);
?>
【问题讨论】:
成功回调函数中console.log(data)
的输出是什么??
@Mohamed-Yousef 当我删除密码时,程序仅通过用户名即可正常工作,程序工作正常,但是当我添加密码时,它不起作用无法从 console.log
获取数据我不是确定这个if(isset($_POST["user_name"] && $_POST["password"]))
和这个$('#username','#password').blur(function()
试试这个***.com/questions/56034740/…
@Mohamed-Yousef 只是为了通知您先生,该代码是来自该站点 Check username availability 的教程。我只是修改并更改它以进行两个输入,即密码然后它无法正常工作。
@Nick 回答了jquery selector
和isset
部分.. 但要让你知道.. 没用 专门描述问题并不是一件好事与ajax
。使用 AJAX。 1-检查js和php文件之间的连接.. 2-console.log
返回的数据.. 3-将变量从js传递到php..然后在php中回显它应该返回一个返回的数据.. 4- 添加 db 部分,然后一次又一次地检查数据以输出所需的输出.. 最后一件事是在任何 if 语句 var data = data.trim();
之前准确修剪数据以避免任何不需要的空格
【参考方案1】:
备注
您对 SQL 注入持开放态度。您应该改用准备好的语句。请阅读How can I prevent SQL injection in PHP? 您不应以纯文本形式存储密码。而是使用 PHP 的password_hash
和 password_verify
函数进行哈希和验证。
回答
您错误地使用了isset
。要检查是否设置了多个值,请用逗号分隔它们,而不是 &&
:
if(isset($_POST["user_name"], $_POST["password"]))
您当前的 PHP 代码不会产生任何输出,因为它会在该行出现致命错误而终止。
在您的 jQuery 中,您没有正确指定多个选择器。它们都应该在同一组引号内:
$('#username, #password').blur(function()
您还需要更改此代码,这会将 username
和 password
值设置为相同的值:
var username = $(this).val();
var password = $(this).val();
到
var username = $('#username').val();
var password = $('#password').val();
【讨论】:
你能检查一下jquery代码吗?谢谢楼主 我不确定这条线先生,$('#username','#password').blur(function()
@webccodez 你的 jQuery 也有问题。查看我的编辑。
先生,很棒的是消息现在显示Username and Password not Match
,即使我输入了正确的用户名和密码。它仍然没有说它是 Match 我们可以更彻底地看到它吗,先生,谢谢你.. 我猜我们已经关闭了??
回调函数中console.log(data)
的输出是什么?以上是关于检查用户名和密码是不是匹配或可用 - Jquery的主要内容,如果未能解决你的问题,请参考以下文章