【发布时间】:2014-05-25 21:47:28
【问题描述】:
我需要同时过滤$_GET['action'] 和$_GET['id'] 吗??
正常
if (isset($_GET['action']) && $_GET['action'] == 'delete') {
/* Do Something*/
}
过滤
if (isset($_GET['action']) && filter_input(INPUT_GET, 'action', FILTER_SANITIZE_STRING) == 'delete') {
/* Do Something*/
}
正常
if (isset($_GET['id']) && !empty($_GET['id'])) {
/* Do Something*/
}
过滤
if (isset($_GET['id']) && !empty(filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT))) {
/* Do Something*/
}
已编辑我需要 filter(filter_input) $id 或 PDO::PARAM_INT 做同样的事情吗?
if (isset($_GET['id']) && !empty($_GET['id'])) {
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
$query = "SELECT * FROM table WHERE id = :id";
$stmt = $dbh->prepare($query);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
print htmlspecialchars($row['test'], ENT_QUOTES, 'UTF-8');
}
【问题讨论】:
-
既然它只是帮助你删除非法字符,我认为没有理由不这样做。
标签: php input sanitization