The only form field which won't POST to the next page would be a checkbox (if not checked). Otherwise, all form fields will POST, even if they are empty.
For example, if textbox1 is left blank, you get the variable $POST['textbox1'] with the value of "". But if checkbox1 is not checked, then $POST['checkbox1'] does not exist.
To avoid errors, use:
if(isset($_POST['checkbox1']))
$checkbox1 = $_POST['checkbox1'];
else
$checkbox1 = NULL;
Or shorthand:
$checkbox = isset($_POST['checkbox1']) ? $checkbox1 : NULL;
Unfortunately, if you have a lot of checkboxes, this is going to get quite messy.
It would probably be best to use arrays of checkboxes in this case, ie:
<input type="checkbox" name="checkbox1[]" value="1">
<input type="checkbox" name="checkbox1[]" value="2">
<input type="checkbox" name="checkbox1[]" value="3">
Then you can use foreach() loops to see which checkboxes are checked:
// I can't remember if you need the brackets after checkbox1 here, so try both ways...
$ck1 = $_POST['checkbox1[]'];
foreach($ck1 as $value)
{
echo "Checkbox $value checked!<br>";
}