gpt4 book ai didi

javascript - 字符串的第一个字符与 % 融合

转载 作者:行者123 更新时间:2023-12-03 04:25:28 24 4
gpt4 key购买 nike

所以我将一个带有 javascript 的字符串发送到 php 页面:

if(cp.value!=''){
s+=cp.name +" LIKE '%"+ cp.value +"%'";
console.log(s);

if(sec.value!=''){
s+=" AND "+sec.name+" LIKE '%"+ sec.value +"%'";
console.log(s);

}
}
else{
if(sec.value!=''){disappear
s+=sec.name+" LIKE '%"+ sec.value +"%'";
}
}

console.log(s);
if(s.length!=0){
var connect = new XMLHttpRequest();
connect.onreadystatechange=function(){
if (connect.readyState==4 && connect.status==200){
var resu=connect.responseText;
console.log(resu);
var tab=document.getElementById("main_tab");
tab.innerHTML=resu;


}
};
connect.open("POST","../../Controller/stage.php",false);
connect.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
connect.send("s="+s);

}

}

发送的字符串例如:

CP_Stage LIKE '%90%' AND secteur_stage LIKE '%ait%'

但是当我在 php 页面中打印请求时,我有类似的内容:

SELECT * FROM Stage WHERE CP_Stage LIKE '�%' AND secteur_stage LIKE '%ait%';

我不知道为什么我的第一个数字随着第一个 % 一起消失。如果有人有想法那就太棒了,谢谢!

最佳答案

百分号是一个特殊字符。有特殊字符如%,&,吗?等需要编码。您的“%90”将转换为 Ascii 值。您必须使用encodeURIComponent 对这些值进行编码。

s += cp.name + " LIKE '" + encodeURIComponent("%" + cp.value + "%") + "'";

请注意,encodeURIComponent 不会转义 ' 字符。如果您的 cp.value 有 ',您必须将其替换为其编码值:%27

顺便说一句......从客户端发送 mySQL 查询是一个坏主意 - 这是一个主要的安全缺陷。仅发送值并在服务器端构建查询。

关于javascript - 字符串的第一个字符与 % 融合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43760463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com