我正在使用PHP过滤器来完成表单数据的基本清理和验证。
我遇到的主要问题是我标记了我的表单,以便所有数据都在一个数组中用于POST输入。例如表单字段,页面[名称],页面[slug],页面[正文],页面[状态]等。
使用以下内容:
filter_input(INPUT_POST, 'page[name]', FILTER_SANITIZE_STRING);
OR
filter_input(INPUT_POST, "page['name']", FILTER_SANITIZE_STRING);
我无法访问该变量。有人可以告诉我使用filter_input()
访问数组数据的正确名称答案 0 :(得分:14)
我不认为你可以访问单个值(很容易,你想要),但是你可以只过滤page
数组并获得你想要的值。
$page = filter_input(INPUT_POST, 'page', FILTER_SANITIZE_STRING, FILTER_REQUIRE_ARRAY);
if (array_key_exists('name', $page)) {
$name = $page['name'];
}
或者,如果你没有能力使用原始输入,那么你可以使用:
if (isset($_POST['page']['name'])) {
$name = filter_var($_POST['page']['name'], FILTER_SANITIZE_STRING);
}
然而,两者都非常难看。
答案 1 :(得分:8)
怎么样
$_POST['page'] = filter_var_array($_POST['page'], FILTER_SANITIZE_STRING);