【发布时间】:2019-09-13 10:18:47
【问题描述】:
我正在使用带有表单的 get 方法,以便将复选框状态信息存储到数组中
我尝试使用 filter_input 行顺序从每个复选框中获取信息并将其存储到一个数组中,当替换为 $_get 时一切正常,但我被告知不要使用 $_get安全。
<form action="" method="get">
<input type="checkbox" name="1">Show Name<br>
<input type="checkbox" name="2">Show Category<br>
<input type="checkbox" name="3">Show Type<br>
<input type="submit" value="Submit">
</form>
<?php
$formArray = array();
$x = 1;
while ($x < 4) {
if (isset($_GET[$x])) {
$formArray[$x] = filter_input(INPUT_GET, "$x", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH)
}
else {
$formArray[$x] = "off";
}
$x = $x + 1;
}
?>
然后数组应该存储“on”或“off”的值,但它只是留空,正如我在替换为“$formArray[$x] = $_GET["$x"];”时提到的那样,程序运行 100% 正确
【问题讨论】:
-
isset()的参数必须是一个变量。只需使用if(filter_input(...)) -
感谢您创建MCVE
标签: php html arrays filter get