Ist normal, Checkboxen werden nicht zum Server gesendet, wenn diese nicht gecheckt sind.
Nicht gecheckte Radiobuttons ebenso wenig.
Wenn Du die Checkbox für ein Bearbeitungsformular benötigst, dann kannst Du Dir mit einem Hidden-Field aushelfen, so mache ich das immer und es funktioniert wunderbar.
HTML-Code:
<input type="hidden" name="name-der-checkbox" value="0" />
<input type="checkbox" name="name-der-checkbox" value="1" />
Ist die Checkbox nicht gecheckt, dann wird nur das Hidden-Field übertragen und der Wert ist "0" ($_GET['name-der-checkbox']==0). Ist die Checkbox gecheckt, dann werden beide Felder übertragen und da sie den gleichen Namen tragen wird der Wert des Hidden-Field durch den Wert der Checkbox überschrieben ($_GET['name-der-checkbox']==1).