So what is posting czip to the first script then?
Debugging 101
Test all GET and POST vars before you try to use them
if (isset($_POST['czip'])) {
$_SESSION['czip'] = $_POST['czip'];
}
That should be aprt of your permanent code.
When things are not working the way you expect then echo out everything at every stage. To begin with check all POST vars like this
foreach ($_POST as $key=>$val) {
echo $key . ' = ' . $val . '<br />';
}
Once you are satisfied that the data is arriving at the target script you canb begin to track it through the script untill you find the error. You do that by echoing any var before using it in an IF etc.
Add echo statements inside every IF, SWITCH, and the like so that you can track the processing.
Do that and you'll find what is going wrong.
In this case it is because there is nothing in $_POST['czip']. If there is not some other script posting to the first one then it does not even exist.
My example code does work, just try the other one I posted where I made a session var out of a string and you'll see I'm right.