Php 使用ajax检查用户名+;json
我制作了一个php文件,其中包含json格式的用户名Php 使用ajax检查用户名+;json,php,json,ajax,Php,Json,Ajax,我制作了一个php文件,其中包含json格式的用户名 [ {"korisnicko_ime":"darbranis"}, {"korisnicko_ime":"markrc"}, {"korisnicko_ime":"leoluk"}, {"korisnicko_ime":"borbau"}, {"korisnicko_ime":"ivavad"}, {"korisnicko_ime":"andtikv"}, {"korisnicko_im
[
{"korisnicko_ime":"darbranis"},
{"korisnicko_ime":"markrc"},
{"korisnicko_ime":"leoluk"},
{"korisnicko_ime":"borbau"},
{"korisnicko_ime":"ivavad"},
{"korisnicko_ime":"andtikv"},
{"korisnicko_ime":"nikohras"},
{"korisnicko_ime":"marbranis"},
{"korisnicko_ime":"ratkolev"},
{"korisnicko_ime":"antobrk"}
]
现在,我想使用ajax+json检查数据库中是否已经存在用户名,该用户名应如下所示:
var kor_ime = $("#k_ime").val();
$.ajax({
url: 'http://barka.foi.hr/WebDiP/2017_projekti/WebDiP2017x021/popis_korisnika.php',
type: 'GET',
dataType: 'json',
success: function (json) {
$.each(json, function (korisnicko_ime, value) {
if (value === kor_ime) {
$("#poruke").text("Korisnik postoji!");
console.log("Korisnik postoji!");
} else {
$("#greske").text("Korisnik ne postoji!");
console.log("Korisnik ne postoji");
}
console.log(kor_ime);
});
}
});
现在,当我集中注意力时,每次都会收到用户名不存在的消息。我需要帮助。您的javascript中有两个错误: 第一个:您希望变量
value
是一个类似“darbranis”
的字符串。但是,$。每个
都会给出第一个参数作为索引(0
,1
,2
,在这种情况下依此类推,因为json
是一个规则数组),并且作为第二个参数的值({“korisnicko ime”:“darbranis”}
,用于第一个条目)
因此:
应该是这样的:
$.each(json, function (arrayidx, arrayvalue) {
if (arrayvalue.korisnicko_ime === kor_ime) {
第二个错误:$(“#poruke”)
如果json中有一个用户名等于kor\u ime
,则会写入<如果json中的用户名不等于kor\u ime
,则会写入code>$(“#greske”)。由于json中有许多用户名不等于kor_ime
,$(“#greske”)
。我假设“Korisnik ne postoji!”翻译成“未找到用户”,所以您很可能不喜欢这种行为。要解决此问题,请执行以下操作:
// Initialize userfound as false
var userfound = false;
$.each(json, function (arrayidx, arrayvalue) {
if (arrayvalue.korisnicko_ime === kor_ime) {
// If there is one entry with the correct username, the user is found
userfound = true;
}
});
// After the each check if user is found (one match) or not
// found (no match at all, thus still at initial value false)
if (userfound) {
$("#poruke").text("Korisnik postoji!");
console.log("Korisnik postoji!");
} else {
$("#greske").text("Korisnik ne postoji!");
console.log("Korisnik ne postoji");
}
在下面的代码片段中完成演示:
var kor_ime='markrc';
var json=[
{“korisnicko_ime”:“darbranis”},
{“korisnicko_ime”:“markrc”},
{“korisnicko_ime”:“leoluk”}
];
var userfound=false;
$.each(json,函数(arrayidx,arrayvalue){
if(arrayvalue.korisnicko_ime===kor_ime){
userfound=true;
}
});
if(userfound){
$(“#poruke”).text(“Korisnik postoji!”);
log(“Korisnik postoji!”);
}否则{
$(“#greske”).text(“Korisnik ne postoji!”);
console.log(“Korisnik ne postoji”);
}
更改如下:
$.each(json, function (korisnicko_ime, value) {
if (value === kor_ime) {
$("#poruke").text("Korisnik postoji!");
console.log("Korisnik postoji!");
} else {
$("#greske").text("Korisnik ne postoji!");
console.log("Korisnik ne postoji");
}
为此:
json.forEach(function (value) {
if (value.korisnicko_ime == kor_ime) {
$("#poruke").text("Korisnik postoji!");
//console.log("yes");
} else {
$("#greske").text("Korisnik ne postoji!");
//console.log("no");
}
});
显然,您的代码需要一个带有用户名的数组,但这不是您得到的结果。您将获得一个对象数组,其中包含一个带有用户名的属性
korisnicko_ime
与其检查if(value==kor\u-ime)
不如检查if(value.korisnicko\u-ime==kor\u-ime)
此外,在确定用户名不存在之前,您没有查看所有条目。对于用户名不匹配的每个条目,对不存在的用户执行操作
但别介意,为什么f向未经验证的用户提供系统上所有可能登录的列表?你知道任何人都能看到那张名单吗?这是一个严重的安全漏洞。不要在客户端验证敏感信息。您确实需要帮助!你的php代码在哪里?我知道php代码,ajax调用是个问题。试着用console.log检查你的值:$。每个(json,函数(korisnicko_ime,value){console.log(korisnicko_ime,value);});多么伟大的上帝啊;谢谢,一切正常,就像我想要的,但当我输入一个不存在的名称时,它表示用户存在
json.forEach(function (value) {
if (value.korisnicko_ime == kor_ime) {
$("#poruke").text("Korisnik postoji!");
//console.log("yes");
} else {
$("#greske").text("Korisnik ne postoji!");
//console.log("no");
}
});