尝试验证然后清理$_GET请求.我只是想看看我是否遗漏了什么.
这是我的……
if (isset($_GET['id'])) {
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
if (!$id) {
echo 'Error';
exit();
}
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
$getinfo = mysqli_query($link, sprintf("SELECT column1, column2 FROM table WHERE id = '%s'", mysqli_real_escape_string($link, $id)));
$row = mysqli_fetch_assoc($getinfo);
if (!$row) {
echo 'Error';
exit();
}
//execute rest of code
}
此外,我知道我应该使用PDO,并且我计划在某些时候将所有内容转换为该内容,但我想知道我正在使用mysqli正确地执行此操作.
我想我也有些困惑……如果我先使用FILTER_VALIDATE_INT,我甚至需要事后使用FILTER_SANITIZE_NUMBER_INT吗?我已经在检查它是否纯粹是INT ……
编辑:编辑以添加FILTER_VALIDATE_INT的错误处理.