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.