Just use a conditional statement checking on the form button names. for example, let's assume you've named the submit buttons on your forms submit1, submit2, and submit3 respectively. You want it to look first for the submission of form 1, and then form 2. If no form submission is detected, show form 1:
if ($submit1) {
// process 1st form
// display 2nd form
}
else if ($submit2) {
// process 2nd form
// display 3rd form
}
else if ($submit3) {
//process 3rd form
}
else {
// display 1st form
}
BTW, you're not saving anything in the passing of variables with this approach. All the vars from the current form still need to be passed (along with any you're keeping from previous forms) regardless of whether you're sending it to $PHP_SELF or another file. HTH.
-geoff