在 php 验证中输入类型 select return 空数组
Input type select return empty array in php validation
我使用以下函数来清理表单数据。
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return htmlspecialchars($str);
}
它给出以下字段的空数组。
$value = clean($_POST['tags_id'];
删除 clean() 函数后,它会给出所有选定的值(意味着没有空数组)
<select name="tags_id[]" multiple="multiple" data-rel="chosen" style="width: 220px">
<option value="1">value1</option>
<option value="2">value2</option>
<option value="3">value3</option>
</select>
如果您查看表格:
<select name="tags_id[]" multiple=...
^^ here
你会看到tags_id
是一个数组,所以$_POST['tags_id']
也是一个数组。
您不能在数组上使用字符串函数,您必须遍历数组的元素并在这些元素上调用 clean()
函数。在这里查看当您在数组上使用 trim()
时会发生什么:example.
如果值是一个数组,您还可以检查您的函数并相应地处理它。
你可以这样试试
if (isset($_POST['submit'])) {
foreach($_POST['tags_id'] as $key => $val) {
echo "val".clean($val); // Here you will get clean values
}
}
function clean($str) {
$str = @trim($str);
if (get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return htmlspecialchars($str);
}
我使用以下函数来清理表单数据。
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return htmlspecialchars($str);
}
它给出以下字段的空数组。
$value = clean($_POST['tags_id'];
删除 clean() 函数后,它会给出所有选定的值(意味着没有空数组)
<select name="tags_id[]" multiple="multiple" data-rel="chosen" style="width: 220px">
<option value="1">value1</option>
<option value="2">value2</option>
<option value="3">value3</option>
</select>
如果您查看表格:
<select name="tags_id[]" multiple=...
^^ here
你会看到tags_id
是一个数组,所以$_POST['tags_id']
也是一个数组。
您不能在数组上使用字符串函数,您必须遍历数组的元素并在这些元素上调用 clean()
函数。在这里查看当您在数组上使用 trim()
时会发生什么:example.
如果值是一个数组,您还可以检查您的函数并相应地处理它。
你可以这样试试
if (isset($_POST['submit'])) {
foreach($_POST['tags_id'] as $key => $val) {
echo "val".clean($val); // Here you will get clean values
}
}
function clean($str) {
$str = @trim($str);
if (get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return htmlspecialchars($str);
}