1. If you take a look on registred data from address_book table, you will see that there is no NULL, only 0, number or blank possible.
All registred fields are already isset() compatible or blank, so no need of isset() in that case for $_POST variables in the begining of the script.

2. Take a look on the condition from state.php file : if ($entry_state_has_zones == true) { $zones_array = array(); $zones_array[0] = array('id' => '', 'text' => PULL_DOWN_DEFAULT); $zones_query = tep_db_query("select zone_name from zones where zone_country_id = '" . (int)$country_id . "' order by zone_name"); while ($zones_values = tep_db_fetch_array($zones_query)) { $zones_array[] = array('id' => $zones_values['zone_name'], 'text' => $zones_values['zone_name']); } echo tep_draw_pull_down_menu('state', $zones_array, $state_name, 'id="inputState" aria-describedby="atState"'); echo FORM_REQUIRED_INPUT; } else { echo tep_draw_input_field('state', tep_get_zone_name($country_id, $state_name, $state_entry), 'id="inputState" placeholder="' . ENTRY_STATE_TEXT . '"'); echo FORM_REQUIRED_INPUT; } For "$entry_state_has_zones == true" (or false) could be, you must have upstream valid "$country_id / $_POST['country_id']".
So understand that "$country_id" variable couldn't be blank or NULL in that case. Do you understand what I mean now ?