如何解决jQuery:检查用户名可用性
| 我在Web应用程序上注册时使用jQuery检查用户名是否可用。由于某种原因,而不是将用户数据保留在数据库中,我将注册用户的ID和密码存储在一个平面文件account.txt中。格式如下: 乔:frt25t5546g约翰:sdfsdgg 更新资料 多亏了这里的人的帮助,我终于有了一个线索,我遵循了http://roshanbh.com.np/2008/04/check-username-available-ajax-PHP-jquery.html上的方法。 这是我的registration.html的一部分$(document).ready(function()
{
$(\"#uname\").blur(function(){
$.post(\"usernameCheck.PHP\",{user_name:$(this).val()},function(data)
{
if(data==\"no\"){
$(this).html(\"This username already exists\");
}
else{
$(this).html(\"Username is available!\");
}
});
});
}
<body>
<form name=\"form\" method=\"post\" action=\"\" />
<table>
<tr><td>Username: </td>
<td><input type=\"text\" name=\"uname\" id=\"uname\" /></td></tr>
</table>
<input type=\"submit\" name=\"submit\" value=\"Register\" />
</form>
</body>
我对jQuery很陌生,对ajax有点...谢谢!
解决方法
不要在客户端执行此操作。您的密码,即使是加密的,也绝对不能离开服务器。创建一个服务器端脚本,该脚本将接受用户名并返回布尔值,然后通过AJAX进行调用。
另外,要回答您的直接问题,请查找JavaScript方法
String.split
和String.match
。
,建议不要使用此代码,但举例来说,您可以这样做
$(function(){
$parsed={};
$.ajax({
url: \'userpass.txt\',complete: function(data,textStatus,jqXHR) {
// get all the data and separate it by rows
$.each(data.responseText.split(\"\\n\"),function(i,v){
// split the rows by colon sign
$parsed[v.split(\":\")[0]] = v.split(\":\")[1];
});
}
});
// when the user is typing the username
$(\'input#username\').keyup(function(){
v = $(this).val();
// check if the username exists
if ($parsed[v]) {
alert(\"user exists\");
}
});
});
,工作示例:http://jsfiddle.net/peeter/RszUy/
我希望这个例子可以说明实际执行此操作有多不安全。
HTML:
<form id=\"secureForm\">
<input type=\"text\" id=\"username\"/>
<input type=\"password\" id=\"password\"/>
<input type=\"submit\" id=\"submit\" value=\"Submit\"/>
<div id=\"results\"></div>
</form>
CSS:
#results {
margin-top: 10px;
}
Javascript:
$(document).ready(function() {
$(\"#username\").keyup(function(e) {
totallySecureWayToCheckIfUserExists();
});
});
function totallySecureWayToCheckIfUserExists() {
$.post(\"/echo/html/\",{
html: \"joe:frt25t5546g\\njohn:sdfsdgg\\nthis:isstupid\"
},function(data) {
var users = data.split(\"\\n\");
$(\"#results\").html(\"\");
$.each(users,function(index,row) {
var username = row.split(\":\")[0];
var password = row.split(\":\")[1];
if(username == $(\"#username\").val()) {
$(\"#results\").html(\"\").append(\"<p>\"+\"Result found! Username \'\" + username +\"\' with the password \'\"+password+\"\' exists,you cannot use this username sorry!</p>\");
return false;
}
else {
$(\"#results\").append(\"<p>\"+\"Doesn\'t match the username: \" + username +\" (password=\"+password+\")</p>\");
}
});
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。