hmmm. OK, let mesee if I get this straight:
1) server prepares and serves php_students_addrecord1.php
2) user inputs values
3) user hits submit button
4) action on form of php_students_addrecord1.php is PHP_SELF so server again serves up php_students_addrecord1.php, now with some values attached (via POST)
5) php_students_addrecord1.php notes values have been submitted and should redirect (via header) to php_students_addrecord2.php
6) php_students_addrecord2.php gets served up but values aren't there
is this correct? wait, I just reread your post, you are saying #5 isn't happening. If so, I assume this is because your if ($submit) statment isn't not evaluating to TRUE and therefore not being processed. This then means that $submit has no value, which raises the question of how php_students_addrecord1.php is being submitted and what the value of $submit is upon its submission. From your provided code, it appears correct. Hmmm....
have I got the gist? Are we getting anywhere?