我使用jQueryUI自动完成函数从数据库中读取数据。Autocomplete调用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方法。'term‘是自动补全功能默认添加的东西吗?提前谢谢。
发布于 2013-06-19 05:56:33
是的,术语由自动完成插件自动传递。
发布于 2013-06-19 05:59:41
PHP
$_GET“‘term”
从get字符串中检索term=的值。因为它是由用户/用户的浏览器提供的,所以它是一个不可信的值。为了保护您免受一些常见的sql注入攻击,通过mysqli_real_escape_string函数对其进行过滤,以转义任何sql活动字符。
https://stackoverflow.com/questions/17179618
复制相似问题