Pour être sûr que toujours 1 ou 0 est envoyé, vous pouvez insérer une entrée masquée avec le même name
de la case à cocher dans le html :
//The input hidden
<input type="hidden" name="subcheck" value="0" />
//The checkbox
<input type="checkbox" name="subcheck" value="1" />
De cette façon, vous n'avez pas besoin de vérifier côté serveur si la zone de texte est définie ou non ;)