Foros del Web » Programando para Internet » PHP »

Ayuda --> Formulario de varias partes con sesiones

Estas en el tema de Ayuda --> Formulario de varias partes con sesiones en el foro de PHP en Foros del Web. Hola, soy diseñador de websites y esta ocasión he incursionado en al creación de un sistema de contratación de servicios para mi website, este esta ...
  #1 (permalink)  
Antiguo 09/07/2004, 04:05
Avatar de Developmex  
Fecha de Ingreso: julio-2004
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Ayuda --> Formulario de varias partes con sesiones

Hola, soy diseñador de websites y esta ocasión he incursionado en al creación de un sistema de contratación de servicios para mi website, este esta definido por 6 formularios que van recopilando los datos del contacto tecnico, administartivo, datos de facturacion, etc etc, y al final , cuando el usuario a acabado de ingresar todos los datos, que estos se muestren en una pagina, mi duda es la siguiente:

¿ Como inicio la sesión y en donde, en todos los formularios debo incluir el inicio de sesion?, como hago para que al final del llenado del formulario, aparezcan impresos todos los datos ingresados, me urge les agradecería mucho su ayuda.

HE buscado muchisimos manuales en la REd y estoy eshausto, pues en todos hablan de Session_start y cosas pro ele stilo, pero no explican bién con un ejemplo como hacerlo y despues realizar las llamadas correspondiente spara imprimir las variables.

Un saludo y espero su pronta respuesta, de antemano Gracias de un Mexicano con deseos de aprender.
  #2 (permalink)  
Antiguo 09/07/2004, 08:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El concepto de la sesión en sí no sé si lo tienes claro .. pero si no lo cones bien es por eso que no sabes aplicar las funciones que ves en muchos sitios.

La "sesión" de PHP no es más que un sitio común en el -servidor- donde almacenar las variables (y sus valores) que "registres" en esa sesión. Esa sesión es -única- para el cliente que las crea y se hace el "enlace" entre el cliente (la página(s) que lo creó) y el servidor (hacia el archivo que PHP crea en el servidor) por médio del denominado "SID" (identificador único de sesión).

Ese tal "SID" es imprescindible que tenga que ser propagado en las N páginas (scripts) que interactues bajo tu sesión iniciada.

La propagación del SID puede ser por cookies o por el URL y .. a su vez PHP puede hacer esta propagación del SID por el URL de forma automática sobre-escribiendo tag's HTML de redireccionamiento como: links, formularios, etc ... o lo puedes hacer tu manualmente.

Para que PHP "sepa" que tiene que usar sesiones -siempre- hay que iniciar su uso con session_start() antes de pretender acceder a una variable de sesión. Esa función lo que hace es:
1) verifica si al script en curso le ha llegado un SID válido propagado (sea por el URL o por cookies según configuración de php.ini que definas).
2) si no le llega un SID válido (que exista y/o no ha expirado) .. creará un nuevo SID y en consecuencia un nuevo "archivo" en el servidor para usarlo como "contenedor" de tus variables de sesión.

Por ende .. si el SID no lo propagas correctamente (o se "pierde") o no usas la función session_start() antes de pretender acceder a una variable de sesión .. el SID se generá denuevo y los datos anterioes que puedas haber guardado en esa sesión que se "relaciona" bajo ese SID (algo tipo af89709asdf786asdf09) ya no será accesible.

Te hago todo este comentario sober el "SID" a nivel de teoría .. por qué cuando empieces a probar ejemplos sobre sesiones que veras y no te funcionen .. el 99.9% de casos suele ser que el "SID no se ha propagado". Por eso es importante que -sepas- (ver tu phpinfo() sección sesiones) como propagas el SID .. por qué así será como tienes que "programar" tu uso de sesiones en tus aplicaciones y evitar problemas.

Con esto debe quedarte claro como funciona una sesión .. así que el resto lo puedes ver en la documentación oficial de PHP sobre sesiones donde veras como "registrar" una variable en una sesión y como leer lo que guardes en ella usando los "arrays" superglobales (en las FAQ's de este foro de las primeras hay ejemplos ..)

www.php.net/session

Para que no digas que "mucho blabla y poco ejemplo":
http://www.forosdelweb.com/f18/paso-variables-entre-archivos-php-213948/

Ahí tienes exactamente resuelta tu pregunta.

Un saludo,
  #3 (permalink)  
Antiguo 12/07/2004, 02:13
Avatar de Developmex  
Fecha de Ingreso: julio-2004
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 0
Excelente Cluster

Agradezco y aprecio mucho tu respuesta Cluster, la cual fue muy pronta y bastante explicita, ahora probare con el ejemplo que mostraste, seguimos en contacto y a la brevedad subire el codigo para que todos aquellos que tengan una duda similar, tengan una solucion practica... HASTA PRONTO
  #4 (permalink)  
Antiguo 12/07/2004, 05:35
Avatar de Developmex  
Fecha de Ingreso: julio-2004
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Una mas de sesiones

He seguido el ejemplo que me muestras en la liga del mensaje anterior Cluster, pero ya lo ejecute y no me funciona, quisiera saber algo mas, el SID se tiene que declarar en algun lugar?, ademas de esto lei las faqs y varias consultas de otros usuarios y a todos ellos les comentas que deben poner el SID en el url y para hidden es de una manera y para formularios es otra, mi duda es la siguiente, mira tengo este formulario de 3 pasos, al final este debe imprimir en pantalla las respuestas que el usuario inserto, por favor me seria de mucha ayuda que lo analizaras y me dijeras que me falta , que me sobra en el, para que me arroje el resultado que deseo.

Este ejercicio es de practica, para que ya una vez entendido, lo pueda aplicar a mi formulario de 6 pasos.

Agradezco infinitamente tu ayuda...

........CODIGO................

1.php
_____________________________________________
<html>
<title>Equipo Favorito</title>
<body>
<form method=post ACTION="procesa1.php">
Cual es tu equipo de fútbol favorito ?
<input name="equipo" type "TEXT">
<br>
<br>
<input type=submit>
</form>
</body>
<html>

procesa1.php
__________________________________________________
<?php
// inicio uso sesiones
session_start();
// Registrar las variables en la sesión.
$_SESSION['equipo']=$_POST['equipo'];
// Redirecciono al siguiente formulario ...
header ("Location: 2.php?");
?>]


2.php
__________________________________________________
<html>
<title>Cuantos años tienes?</title>
<body>
<form method=post ACTION="procesa2.php" >
Cuantos años tienes?
<input name="edad" type "TEXT">
<br>
<br>
<input type=submit>
</form>
</body>
<html>

procesa2.php
__________________________________________________
<?php
// inicio uso sesiones
session_start();
// Registrar las variables en la sesión.
$_SESSION['edad']=$_POST['edad'];
// Redirecciono al siguiente formulario ...
header ("Location: 3.php?");
?>]


3.php

__________________________________________________
<html>
<title>Sexo</title>
<body>
<form method=post ACTION="4.php">
Eres hombre o mujer?
<input name="sexo" type "TEXT">
<br>
<br>
<input type=submit>
</form>
</body>
<html>

procesa3.php
__________________________________________________
<?php
// inicio uso sesiones
session_start();
// Registrar las variables en la sesión.
$_SESSION['sexo']=$_POST['sexo'];
// Redirecciono al siguiente formulario ...
header ("Location: 4.php?");
?>]


4.php
__________________________________________________
<?
echo $_SESSION['equipo'];
echo $_SESSION['edad'];
echo $_SESSION['sexo'];
?>
  #5 (permalink)  
Antiguo 14/07/2004, 05:54
Avatar de Developmex  
Fecha de Ingreso: julio-2004
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 0
He solucionado el problema, ahi lo pulico y funciona Saludos

A todo aquellosq ue no sepan hacer formularios de varias paginas con el usod e sesiones, les dejo ste codigo, espero les sirva,a mi me funciono.
GRACIAS CLUSTER Y GRACIAS ROSWELL

Diviertanse ahi esta el codigo...........

*********** CODIGO ******************
__________________________________________________ ______________


1.PHP
________
<html>
<title>Equipo Favorito</title>
<body>
<form method=post ACTION="procesa1.php">
Cual es tu equipo de fútbol favorito ?
<input name="valor1" type "text">
<br>
Cual es tu comida favorita ?
<input name="valor4" type "text">
<br>

<br>
Cual es tu cancion favorita ?
<input name="valor7" type "text">
<br>

<br>
<input type=submit name="submit" value="submit">
</form>
</body>
<html>

PROCESA1.PHP
________________
<?
session_start(); // incio de uso de sesiones.
// Necesario cada vez que se lean
// o guarden variables de sesión.
$_SESSION['equipo']="$valor1";
$_SESSION['comida']="$valor4";
$_SESSION['cancion']="$valor7";

header ("Location: 2.php");
?>

2.PHP
________________________
<html>
<title>Cuantos años tienes?</title>
<body>
<form method=post ACTION="procesa2.php" >
Cuantos años tienes?
<input name="valor2" type "TEXT">
<br>
<br>
Cuantos perros tienes?
<input name="valor3" type "TEXT">
<br>

<input type=submit>
</form>
</body>
<html>

PROCESA2.PHP
__________________
<?
session_start(); // incio de uso de sesiones.
// Necesario cada vez que se lean
// o guarden variables de sesión.
$_SESSION['edad']="$valor2";
$_SESSION['perros']="$valor3";
header ("Location: 3.php");
?>


3.PHP
________________________
<html>
<title>Sexo</title>
<body>
<form method=post ACTION="procesa3.php">
Eres hombre o mujer?
<input name="valor3" type "TEXT">
<br>
<br>
<input type=submit>
</form>
</body>
<html>


PROCESA3.PHP
_____________________
<?php
session_start(); // incio de uso de sesiones.
// Necesario cada vez que se lean
// o guarden variables de sesión.
$_SESSION['sexo']="$valor3";
header ("Location: 4.php");

4.PHP
______________________
<?
session_start(); // incio de uso de sesiones.
$result1=$_SESSION['equipo']; // asignamos el valor que hay en la session guardada equipo a la variable $result1
$result2=$_SESSION['edad'];
$result3=$_SESSION['sexo'];
$result4=$_SESSION['comida'];
$result7=$_SESSION['cancion'];
$result9=$_SESSION['perros'];
// variable de la session áctiva.

echo "$result1"; // muestra la primer variable
echo "<br>"; // baja un renglon
echo "$result2"; // muestra la segunda variable
echo "<br>"; // baja un renglon
echo "$result3"; // muestra la tercera variable
echo "<br>"; // baja un renglon
echo "$result4"; // muestra la tercera variable
echo "<br>"; // baja un renglon
echo "$result7"; // muestra la tercera variable
echo "<br>"; // baja un renglon
echo "$result9"; // muestra la tercera variable
?>



ESPERO LES SIRVA, ESTA FORMA VA RECOPILANDO VARIABLES INSERTADAS POR EL USUARIOA LO LARGO DE 1,2 Y 3.PHP Y LAS IMPRIME EN PANTALLA TODAS EN 4.PHP, SALUDOS ...
  #6 (permalink)  
Antiguo 26/08/2004, 12:42
Avatar de don_fransisco  
Fecha de Ingreso: junio-2004
Mensajes: 192
Antigüedad: 13 años, 5 meses
Puntos: 1
como se hace este mismo ejemplo pero en una solo script que contenga todos los formularios y que permita verificar si se han rellenado correctamente todos los text.

Última edición por don_fransisco; 26/08/2004 a las 15:39
  #7 (permalink)  
Antiguo 08/02/2006, 02:35
Avatar de Developmex  
Fecha de Ingreso: julio-2004
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 0
De acuerdo Respuesta

si quisieramos hacerlo en una misma pagina, solo tendriamos que modificar esta etiqueta:

<form method=post ACTION="procesa1.php">

por esta otra:

<form method=post ACTION="<? echo $_SERVER['REQUEST_URI'] ?>" >

o esta otra:

<form method=post ACTION="<? echo $_SERVER['PHP_SELF'] ?>" >


y pegar todo le codigo en la misma pagina
SALUDOS
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:14.