Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/04/2004, 06:14
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
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.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 15/04/2004 a las 06:18