我创建了一个必须过滤传递到$_GET
变量的数据的函数。它最近工作,但我开始使用mysqli,现在它已经不存在了。每次通过PHP函数时回应我的$data
,结果导致mysqli_real_escape_string
导致变量$data
返回空。但是我在这里做错了什么。
我的功能应该过滤$_GET
个变量,但mysqli_real_escape_string
会返回一个空变量..
function filter($data) {
global $link;
$data = trim(htmlentities(strip_tags($data)));
if (get_magic_quotes_gpc())
$data = stripslashes($data);
$data = mysqli_real_escape_string($link, $data);
return $data;
}
循环,以便通过过滤器运行所有$_GET
变量。
foreach($_GET as $key => $value) {
$get[$key] = filter($value);
}
与数据库的连接(连接确实有效):( $link
)
$link=mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
答案 0 :(得分:0)
修改您的函数以包含$link
并根据需要通过引用传递:
function filter($data, &$link) {
$data = trim(htmlentities(strip_tags($data)));
if (get_magic_quotes_gpc())
$data = stripslashes($data);
$data = mysqli_real_escape_string($link, $data);
return $data;
}