如何通过$ .ajax安全地发送其他数据/参数进行过滤?
我正在尝试通过$ .ajax发送额外的数据/参数,以便对返回的json进行额外过滤。发送单个术语时,我的设置如下:
javascript:
{"type":"record","name":"MyRecodr","namespace":"org.demo","fields":[{"name":"timestamp","type":{"type":"long","logicalType":"timestamp-millis"}}]}
控制台:
$.ajax({
url: "/source.php",
dataType: "json",
data: {
term: request.term
},
PHP:
GET .../source.php?term=valueA1
现在,在添加/发送其他数据/参数(如果可用)时,我的设置如下所示:
$term = trim(strip_tags($_GET['term']));
$term = preg_replace('/\s+/', ' ', $term);
$a_json = array();
$a_json_row = array();
$a_json_invalid = array(array("id" => "#", "value" => $term, "label" => "Only letters and digits are permitted..."));
$json_invalid = json_encode($a_json_invalid);
if(preg_match("/[^\040\pL\pN_-]/u", $term)) {
print $json_invalid;
exit;
}
if ($data = $mysqli->query("SELECT * FROM accounts WHERE name LIKE '%$term%' OR code LIKE '%$term%'")) {
while($row = mysqli_fetch_array($data)) {
...
}
}
$('#input-newsearch-2')的.val()可以是:
$.ajax({
url: "/source.php",
dataType: "json",
data: {
term: request.term,
tags: $('#input-newsearch-2').val()
},
......等等。
控制台:
$('#input-newsearch-2').val() =
$('#input-newsearch-2').val() = valueA1
$('#input-newsearch-2').val() = valueA1,valueA2
$('#input-newsearch-2').val() = valueA1,valueA2,valueA3
是否可以发送这样的逗号分隔数组,php应该如何使用标签进行额外的过滤(AND WHERE)?
编辑:这不是参考答案的公开,因为我发送一个可能的数组作为第二个参数。它也没有回答锄头然后在php中获取它以及如何在查询中使用它