Foros del Web » Programando para Internet » PHP »

Más sobre las sesiones.

Estas en el tema de Más sobre las sesiones. en el foro de PHP en Foros del Web. Estoy leyendo algo sobre las sesiones y tengo algunas dudas. Cuando se ejecuta el comando sesion_start() se crea una nueva sesión, hasta aquí bien. He ...
  #1 (permalink)  
Antiguo 20/11/2004, 07:35
 
Fecha de Ingreso: noviembre-2003
Mensajes: 383
Antigüedad: 14 años
Puntos: 2
Más sobre las sesiones.

Estoy leyendo algo sobre las sesiones y tengo algunas dudas.

Cuando se ejecuta el comando sesion_start() se crea una nueva sesión, hasta aquí bien. He visto en muchos ejemplos que luego usan la variable $_SESSION['loquesea'].
¿Esta variable array es la unica se que puedo crear en la sesión?

Otro duda es cuantas sesiones se pueden tener abiertas.
Supongamos que yo quiero tener en mi sitio Web dos sesiones, en una sesión mantengo las variables del usuario que se ha validado contra mi sitio web y en la otra sesión mantengo variables propias de cada página.
¿Es posible definir dos sesiones ?

Y por último, dentro de una función he puesto el siguiente código:

global $_SESSION;

si luego intento ver el valor $_SESSION['loquesea'] no me lo saca, pero desde fuera de la función si me lo muestra.

Gracias por todo.
  #2 (permalink)  
Antiguo 22/11/2004, 09:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Cuando se ejecuta el comando sesion_start() se crea una nueva sesión, hasta aquí bien. He visto en muchos ejemplos que luego usan la variable $_SESSION['loquesea'].
¿Esta variable array es la unica se que puedo crear en la sesión?
No .. puedes crear las que quieras .. tan sólo si te fijas eso es un array "asociativo" como contenedor de tus própias variabels de sesión. Incluso .. esas "variables" pueden ser a su vez ararys ..e incluso objetos (se pierden en este caso los métodos .. pero igual se puede hacer), es decir .. no te limita a sólo:

$_SESSION['una_variable']="Valor";
$_SESSION['una_variable2']="Valor2";

Sino que puedes hacer también:
$_SESSION['una_variable']=array("uno","dos","etc");

Cita:
Otro duda es cuantas sesiones se pueden tener abiertas.
Supongamos que yo quiero tener en mi sitio Web dos sesiones, en una sesión mantengo las variables del usuario que se ha validado contra mi sitio web y en la otra sesión mantengo variables propias de cada página.
¿Es posible definir dos sesiones ?
En principio .. las sesiones que crea cada cliente (al usar session_start()) .. se "mantienen" y se continuan usando por el SID (Identificador único de sesión) que usen el cual asocia a tu sesión en el servidor (y los datos que contenga este) al "cliente" que lo inició. No es normal crear dos sesiones .. pues tendrías que controlar tu a mano la propagación de tus dos SID's. Lo normal es que por ejemplo crees varaibels de sesión de tipo array y ahí te estrutures tu división u organización de tus varaibles que formen algún tipo de asociación como las de tu "cuenta de usuario: usuario/etc .." y las de la "aplicación" en general. Siempre puedes ir "jugando" con tus variables de sesión "creando" (definiendo) cuando las necesites y borrandolas de la sesión (selectivamente) cuando ya no las necesites.

Cita:
Y por último, dentro de una función he puesto el siguiente código:

global $_SESSION;
Eso no es necesario pues .. $_SESSION ya es un array "superglobal" .. eso quiere decir que tiene "ambito" (scope) en todo el script que ejecutas .. incluso dentro de funciones; es decir, dentro de funciones puedes acceder directamente a $_SESSION sin necesidad de declararlo como global o pasarselo como parámetro a esa función.

Cita:
si luego intento ver el valor $_SESSION['loquesea'] no me lo saca, pero desde fuera de la función si me lo muestra.
No he probado a hacer global $_SESSION de un array supeglobal que ya es "global" como te comenté .. por ahí podría venir el problema. Usalo directamente.

Un saludo,

Última edición por Cluster; 22/11/2004 a las 09:12
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 14:07.