Php 如果复选框组为';返回t勾选的错误

Php 如果复选框组为';返回t勾选的错误,php,forms,checkbox,Php,Forms,Checkbox,我有一个复选框组,当你勾选一个复选框时,它可以正常工作,但如果所有复选框都未勾选,它将返回一个错误 代码如下: foreach ($_SESSION['CheckboxGroup1'] as $val) { $checkbox1results .= $val.",\n"; } 这就是我得到的错误: Warning: Invalid argument supplied for foreach() in /home/medicom/public_html/memberappform1.php o

我有一个复选框组,当你勾选一个复选框时,它可以正常工作,但如果所有复选框都未勾选,它将返回一个错误

代码如下:

foreach ($_SESSION['CheckboxGroup1'] as $val) {
$checkbox1results .= $val.",\n";
}
这就是我得到的错误:

Warning: Invalid argument supplied for foreach() in 
/home/medicom/public_html/memberappform1.php on line 492
我对php不太在行,因此需要一种方法,如果没有勾选任何内容,则在循环中不返回任何内容。

尝试在会话中使用var_dump()以查看内部内容:)很可能设置了值,但不是数组,因此您可以使用is_array()函数检查您的值。

只需使用

if(isset($_SESSION['CheckboxGroup1'])){     // add && is_array($_SESSION['CheckboxGroup1']) to check its an array or not
   foreach ($_SESSION['CheckboxGroup1'] as $val) {
     $checkbox1results .= $val.",\n";
   }
}
if(isset($_SESSION['CheckboxGroup1'])){
   foreach ($_SESSION['CheckboxGroup1'] as $val) {
   $checkbox1results .= $val.",\n";
   }
}

您必须检查复选框是否已设置,因为空复选框不会发布值

if(isset($_SESSION['CheckboxGroup1']) {
    foreach($_SESSION['CheckboxGroup1'] as $val) {
      $checkbox1result .= $val.", \n";
    }
}

只需使用if语句进行验证

foreach ($_SESSION['CheckboxGroup1'] as $val) {
if ($val !==""){
$checkbox1results .= $val.",\n";
} else {
echo "Please tick an option";
}

-1,考虑到它仍将抛出错误且未设置
CheckboxGroup1
,因此它不是要循环通过的数组。因此,他试图避免的错误仍然会出现。
foreach ($_SESSION['CheckboxGroup1'] as $val) {
if ($val !==""){
$checkbox1results .= $val.",\n";
} else {
echo "Please tick an option";
}