1

我正在使用 jQueryUI 自动完成功能从数据库中读取数据。自动完成调用一个 PHP 脚本,它正在寻找下一个:

$text = mysqli_real_escape_string($_GET['term']);
$query = "SELECT * FROM student WHERE name LIKE '%$text%'";
$result = mysqli_query($con,$query);
$exe = '[';
$first = true;
while($row = mysqli_fetch_assoc($result))
{
    if(!$first)
            {
                $exe .=  ','; 
            }
            else
            {
                $first = false;
            }
            $exe .= '{"value":"'.$row['fname'].', '.$row['lname'].'. "}';
            }
            $exe .= ']';
            echo $exe; 
}

据我所知,PHP 代码将匹配数据保存到名为 exe 的 JSON 对象数组中,但我不明白的是:

$text = mysqli_real_escape_string($_GET['term']);

这是什么?我的输入字段叫做'name',我什至不使用方法$_GET,而是使用$_POST。“术语”是自动完成功能默认添加的吗?提前致谢。

4

2 回答 2

2

是的,自动完成插件会自动传递术语。

于 2013-06-18T21:56:32.963 回答
0

PHP的

$_GET['术语']

从 get 字符串中检索 term= 的值。由于这是由用户/用户的浏览器提供的,因此它是一个不受信任的值。为了保护您免受一些常见的 sql 注入攻击,它通过 mysqli_real_escape_string 函数过滤以转义任何 sql-active 字符。

于 2013-06-18T21:59:41.010 回答