Foros del Web » Programando para Internet » PHP »

como paso variables mediante url a una sesion

Estas en el tema de como paso variables mediante url a una sesion en el foro de PHP en Foros del Web. _____________________________________________ campo1 campo2 --------------------------------------------------- 003340 SILLA "SILLA CROMADA,DAMASCO CAFE" 003447 SILLA METAL METAL TAPIZ NEGRO 003609 ESCRITORIO ESCRITORIO EN MADERA 2 CAJONES 453742 MEMORIA "MEMORIAS ...
  #1 (permalink)  
Antiguo 12/10/2004, 12:32
 
Fecha de Ingreso: mayo-2004
Ubicación: en Quito calle de los Milagros 142
Mensajes: 24
Antigüedad: 20 años, 6 meses
Puntos: 0
como paso variables mediante url a una sesion

_____________________________________________
campo1 campo2
---------------------------------------------------
003340 SILLA "SILLA CROMADA,DAMASCO CAFE"
003447 SILLA METAL METAL TAPIZ NEGRO
003609 ESCRITORIO ESCRITORIO EN MADERA 2 CAJONES
453742 MEMORIA "MEMORIAS FLASH, MARCA KINGSTON, CAPACIDAD
453899 TELEFONO TELEFONO SENCILLO DIGITAL MARCA NEC MODELO ST6

************************************************** ******
este ejemplo de pantalla generado por un printf de los registros de una base datos, de la cual necesito captura los campos al posicionarme en una de ellas, y hacer clic ¿como regojo dichas variables para pasar el campo1 y el campo2 a las variable de sesion que ya estan previamente definidas?
__________________
Eric
  #2 (permalink)  
Antiguo 12/10/2004, 13:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Para llevar tus datos a una sesión .. tienes que:

1) generar el link para ese dato ..

Código PHP:
echo "<a href=\"guarda_en_sesion.php?campo1=$campo1&campo2=urlencode($campo2)\">"
Ahí se propaga campo1 y campo2 hacia el script que va a generar tus variables de sesión .. Si te fijas .. aplico urlencode() ya que tu "dato" contiene espacios.

En "guarda_en_sesion.php" .. tomas esas variables y las llevas a tu sesión:

Código PHP:
<?
session_start
();
$_SESSION['campo1']=$_GET['campo1']
$_SESSION['campo2']=urldecode(stripslashes($_GET['campo2']));
header ("Location: nosedonde.php");
?>
En ese script .. aplico lo contrario de urlencode() y aplico un "stripslashes()" por qué ese dato para el campo2 contiene comillas. Para evitar problemas usamos esas funciones.

Al terminar el proceso . .y para que queden disponiebles esas variables de sesión, se redirecciona a otra página/script y a partir de ahí ya quedarán disponiebles esas variable en la sesión.

Si te fijas .. da igual si esas variables de sesión estuviesen creadas o no o con qué valor .. Las variables de sesión en ese punto se sobre-escriben/crean.

Un saludo,
  #3 (permalink)  
Antiguo 12/10/2004, 17:00
 
Fecha de Ingreso: mayo-2004
Ubicación: en Quito calle de los Milagros 142
Mensajes: 24
Antigüedad: 20 años, 6 meses
Puntos: 0
Muy gentil por la respuesta a mi pedido muchas gracias.

Solo una cosa MUY IMPORTANTE como OCULTO lo que pasa por el echo o por la url
hasta recoger las variables en "guarda_en_sesion.php"
__________________
Eric
  #4 (permalink)  
Antiguo 13/10/2004, 06:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Ahí ya no se puede si usas un link de ese tipo .. tendrías que usar un formulario y un botón (o link que haga submit del formulario) para que puedas usar método POST en lugar de "GET" que es lo que usa si lo haces con un link.

Ahora .. una sugerencia, por qué quieres ocultar esos datos por el URL? .. Personalmente en lugar de pasar todos esos datos sólo pasaría la refencia de esos datos (registro) .. tal vez ese "campo1" para la sesión y .. en "guarda_en_sesion.php" sería donde haría una consulta a tu BD para obtener el resto de datos (campo2) y llevarlo a la sesión. De esta forma me aseguro que NUNCA el "campo2" por ejemplo va a viajar hacia el cliente (ni por el URL ni de otra forma .. siempre está bajo esa sesión en el servidor).

Un saludo,
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




La zona horaria es GMT -6. Ahora son las 21:15.