Bueno . si, puedes usar un sólo script de proceso.
Necesitarás una variable de control que indique que proceso ha de realizar tu script y que lo gestione un swith() .. así llamaras a tus 3 procesos intermedios de tus 3 formularios tipo:
formulario1.php
<form action="procesar.php?accion=paso1" method="post">
formulario2.php
<form action="procesar.php?accion=paso2" method="post">
formulario3.php
<form action="procesar.php?accion=paso3" method="post">
en procesar.php tomaras el valor de accion por el URL en modo GET para aplicar el switch() (podrías usar también campos hidden y así llevar esa variable "acción" en el método que uses en el formulario (en ese caso del ejemplo en POST).
Código PHP:
switch ($_GET['accion']){
case "paso1":
// procesos para el paso 1
break;
case "paso2":
// procesos para el paso 2
break;
case "paso3":
// procesos para el paso 3
break;
default:
echo "secuencia incorrecta de proceso ...";
}
El tema del "USERID" .. si dices que es un campo incremental, lo generas en el proceso 1 (el registro que crea ese ID) ... Tendras que obtener dicho "USERID" con mysql_insert_id() para propagarlo a los subsiguientes formularios, los cuales deberan tomar esa variable y pasarla al script de proceso. Esto mismo puedes hacerlo (recomendable por seguridad) usando una sessión .. ejemplo:
Código PHP:
<?
session_start();
switch ($_GET['accion']){
case "paso1":
// procesos para el paso 1
// Obtienes el ID autoincremental generado por tu INSERT:
$userid=mysql_insert_id($consulta);
// Y lo llevas a una variable de sesión de nombre "USERID"
$_SESSION['USERID']=$userid;
// Y redireccionas a tu formulario2
header("location: formulario2.php");
exit;
break;
case "paso2":
// Tomas el valor de tu variable de sesión "USERID" para usarla en tus relaciones de tus tablas.
$userid=$_SESSION['USERID'];
// Y usas $userid donde lo requieras ...
// procesos para el paso 2
// Y redireccionas a tu formulario3
header("location: formulario3.php");
exit;
break;
case "paso3":
// lo mismo que el paso2 para tomar la variable de sesión USERID
// procesos para el paso 3
// En este punto ya no te hará falta esa variable de sesión .. así que puedes borrar dicha variable de sesión o incluso la sesión entera si no la necesitas con unset($_SESSION['USERID') para borrar la variable de sesión o bien session_destroy() para toda la sesión.
// Y redireccionas a tu otro sitio donde digas que el proceso se ha finalizado con exito ..
header("location: nose.php");
exit;
break;
default:
echo "secuencia incorrecta de proceso ...";
}
Un saludo,
PD: En el uso de sesiones empleado se asume que se propagará el SID por cookies y que se usa PHP 4.1.0 en adelante.