Dies stellt selbstverständlich die Existenz der Checkbox generell in Frage. Die könnte man also wegoperieren -> DEPRICATED.
Wieso? Man kann doch mit einer "Generalmethode" reagieren, wenn eine Checkbox (Radio-Button oder was auch immer) zu fehlen scheint:
function getCheckBoxValues ( $method, $arCheckBoxNames ) {
    if ( ( 'string' ) == $arCheckBoxNames ) {
        $arCheckBoxNames = [ $arCheckBoxNames ];
    }
    
    $method = strtoupper( $method );  
    if ( 'POST' == $method ) {
       $helper = $_POST;
    } elseif ( 'GET' == $method ) {
		   $helper = $_GET;
	  } else {
       trigger_error( 'Falscher Wert für $method: ' . $method , E_USER_ERROR );
       ### exit;
    }
    
    $arReturns = [];
    foreach ( $arCheckBoxNames as $CheckBoxName ) {
       if ( isset( $helper[$CheckBoxName] ) ) {
           $arReturns[$CheckBoxName] = $helper[$CheckBoxName];
       } else {
           $arReturns[$CheckBoxName] = false;
       }
    }
    return $arReturns;
}
### Test #######################################
$_POST['foo']  = 'on';
$_POST['bar']  = 0;
$_POST['tok']  = 1;
$_POST['qux']  = NULL;
$_POST['quux'] = false;
$_GET = $_POST;
echo "################### POST ###################################\n":
var_dump( getCheckBoxValues( 'post', ['foo', 'bar', 'tok', 'baz', 'qux', 'quux'] ) );
echo "################### GET  ###################################\n":
var_dump( getCheckBoxValues( 'Get', ['foo', 'bar', 'tok', 'baz', 'qux', 'quux'] ) );
Welche Checkboxen erwartet werden kann man z.B. in die Session schreiben bevor man das Formular Richtung Useragent absendet. Die Werte NULL oder FALSE sollte man nicht als Value der Checkboxen verwenden. Das ist aber auch ziemlich schwierig.
 nicht angemeldet
 nicht angemeldet TS
 TS Gunnar Bittersmann
 Gunnar Bittersmann Auge
 Auge Rolf B
 Rolf B Matthias Apsel
 Matthias Apsel