PHP中的foreach-如何在变量中传递值?

PHP中的foreach-如何在变量中传递值?,php,html,arrays,checkbox,foreach,Php,Html,Arrays,Checkbox,Foreach,所以问题是,我有一个带有复选框的HTML表单作为输入选项。 我想将所有选定选项保存为一个变量中的字符串(!) 我很确定解决方案是foreach循环,但我的不起作用。它只返回最后选择的值 我怎样才能解决这个问题 HTML <form action="" method="post"> <label>category:<br/> one <input type="checkbox" name ="ber[]" value="one"><b

所以问题是,我有一个带有复选框的HTML表单作为输入选项。 我想将所有选定选项保存为一个变量中的字符串(!)

我很确定解决方案是foreach循环,但我的不起作用。它只返回最后选择的值

我怎样才能解决这个问题

HTML

<form action="" method="post">
<label>category:<br/>
     one <input type="checkbox" name ="ber[]" value="one"><br/>
     two <input type="checkbox" name ="ber[]" value="two"><br/>
     thr <input type="checkbox" name ="ber[]" value="three"><br/>
     fou <input type="checkbox" name ="ber[]" value="four"><br/>
</form>
这称为“阵列内爆”:


您需要连接

$ber = ''
foreach ($_POST['ber'] as $value) {
    $ber .= "$value. ', '"
}
使用当前方法,
$ber=
覆盖上一个值


一个更好的解决方案是
内爆

您将在POST数组中获得选中的复选框值

<?php $_POST['ber']; ?>

现在,如果要将此数组分配给以逗号分隔的变量

<?php $beer_value = implode(",", $_POST['ber']); ?>


只要用下面的foreach循环更改foreach循环即可。您将在
POST
中获得
ber
,而不是
类别
。因此,您需要将
$\u POST['ber']
$\u POST['category']
更改为
$\u POST['ber']

$ber = '';
foreach ($_POST['ber'] as $value) {
    $ber .= "$value. ', '"
}

$\u POST['category']
应该是
$\u POST['ber']
否?名称将是
$\u POST['ber']
而不是
$\u POST['category']
,并且根据此
$ber=“$value.”,“
。。。它看起来将被塞进mysql查询中:(@Nat_uuCsvs不应存储在一列中。每列1个值。您也不应将用户输入传递给SQL查询。查询应参数化。请看一看,不,
htmlspecialchars
用于输出到浏览器,而不是SQL。(默认情况下,它对单引号也不做任何处理)注入也可以通过多种方式完成。最好是参数化,让驱动程序逃避一切,而不是猜测注入的外观。并且您需要更改
$\u POST['category']
,它不存在于
$\u POST['ber']
我的是一品脱,但是OP是
$\u POST['ber']
<?php $beer_value = implode(",", $_POST['ber']); ?>
$ber = '';
foreach ($_POST['ber'] as $value) {
    $ber .= "$value. ', '"
}