我在 JSON (data.json)中有两组数据,如下所示:
UP = [{"password": "jhonjhon", "username":"jhon"}, {"password": "juliejulie", "username":"julie"}, {"password": "blakeblake", "username":"blake"}];
并且
Admins = '[{"Admin":"jhon"}, {"Admin":"julie"}]';
我有一个 HTML 表单,用户将用它来登录。
<html>
<body>
<form name="myForm" onsubmit="finalCheck()">
UserName<input type="text" id="uid" value="UserId"/>
UserPassword<input type="password" id="pwd" value="UserPwd"/>
<input type="submit"/>
</form>
</body>
<script src="data.json"></script>
<script src="checking.js"></script>
</html>
点击提交按钮后,我想首先检查输入的用户名(存储在var中,比如说x
)是否属于 JSON Admins列表>文件与否。例如:如果x
为jhon
,我想知道 JSON 的jhon
中是否存在相同的Admins
。
JavaScript 截至目前为止:
function finalcheck(){
var x = document.forms["myForm"]["uid"].value;
var y = document.forms["myForm"]["pwd"].value;
}
非常感谢帮助JavaScript!
答案 0 :(得分:2)
要检查for (var i = 0; i < UP.length; i++) {
if (UP[i].username == x && UP[i].password == y) {
for (var j = 0; j < Admins.length; j++) {
if (Admin[i].Admin == x) {
//It's correct logins, do something
}
}
}
}
是否与用户在JSON中相同,您必须循环该JSON数组并检查值:
{{1}}
安全强>
从不 将密码放在用户可访问的位置,始终使用后端验证,始终对密码进行编码。你的方法非常不安全。我总是可以检查JSON源文件,看看我可以登录哪些登录管理员
答案 1 :(得分:1)
你应该遍历JSON对象并检查uid
是否存在。
adminFlag
中存在x
,则 Admins
将设置为true。
尝试下面给出的代码:
function finalCheck(){
var adminJSON = JSON.parse(Admins), // since Admins is string, parse to Json first
length = adminJSON.length,
x = document.forms["myForm"]["uid"].value,
y = document.forms["myForm"]["pwd"].value,
adminFlag = false;
// for loop to find admin is present or not
for(var i = 0; i < length; i++){
if(adminJSON[i].Admin == x){
adminFlag = true;
break;
}
}
}
答案 2 :(得分:1)
我认为这项任务是出于学习目的。请不要在生产中这样做。您可以使用此示例代码。有很多更智能的解决方案,但在我看来,这将有助于您理解基础知识。
var UP = [{"password": "jhonjhon", "username":"jhon"}, {"password": "juliejulie", "username":"julie"}, {"password": "blakeblake", "username":"blake"}];
var ADMINS = [{"Admin":"jhon"}, {"Admin":"julie"}];
function finalcheck()
{
var x = 'jhon';
var y = 'jhonjhon';
for(var i = 0; i < UP.length; i++)
{
if (UP[i].password == x && UP[i].username == y)
{
console.log(y + ' has access!');
for (var j = 0; j < ADMINS.length; j++) {
if (ADMINS[j].Admin == y)
{
console.log(y + ' is Admin');
}
}
}
}
}