Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/05/2004, 07:54
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si, en su base es lo que significa.

La sesión en sí es un "contenedor" de "varaibles" (de sesión) que se crea y gestina -en el servidor- (no como una cookie que sería en el "cliente=> PC usuario").

La útilidad que tienen por ejemplo la más usada es para sistemas de autentificación de usuarios; donde al ingresar tu usuario a tu aplicación y autentificarlo (contra tu Base de datos, sistema de archivos o variables simples donde almacenas su par: usuario/contraseña) .. creas una variable de sesión (en una sesión nueva que se crea automáticamente si no existía ninguna para ese cliente) donde guardas algún dato tipo "el nombre del usuario". Esto te servirá para que tu sistema (tu aplicación) sepa ante cada acción (bajo ese valor de esa variable) quien está "autentificado" en ese instante y usarlo para registro de acciones que pueda hacer en la aplicación.

Esa sería la aplicación "estrella" donde más se usan las sesiones, pero .. las sesiones no quedan ahí solo (su uso). Imagina una série de N formularios que tienes que ir recolectando datos que van ingresando (el usuario) y .. al final del proceso del último formulario tienes que procesar esos datos para almacenarlos en una Base de datos por ejemplo. Bien .. entre el formulario 1 al 2 .. del 2 al 3 .. del N al N vas guardando tus variables en una sesión y al final del proceso del último formulario .. las tomas de la sesión para realizar el proceso que corresponda.

Recuerda que en PHP las variables sólo tienen el ambito del script que las toma o procesa . .Nada más .. por eso en los momentos que necesites de unas variables "compartidas" (para ese usuario "sesión)" tienes que usarlas (o bien cookeis). Podrías "propagar" esas variables que requieras por el URL (en links . en campos hidden de formularios) .. Pero si usas sesiones realmente resulta "comodo" y sobre todo seguro ir usando sesiones para almacenar esos datos.

Ejemplo de "seguridad" .. esas variables de sesión permanecen en el servidor .. así que no son alterables como lo podrían ser alguna variable que propagues en el URL (en un link por ejemplo).

Otro ejemplo: El "carrito de compra" .. done navegas por tu sitio "añadiendo" variables a la sesión (serían tus identificadores de tus productos) y cuando le das a "comprar" lo que haces es leer esas variables de sesión para procesar tu pedido.

A nivel de implementación de "sesiones" . Las sesiones son únicas para el cliente que las crea. Se les asigna un "SID" (identificador único de sesión) a cada sesión que se inicia (es único) y se usa el mismo siempre y cuando este SID llege propagado al script que necesite accder/crear alguna variable de sesión para esa sesión activa.

La "propagación" del SID puede ser por el URL (manual o automático por parte de PHP), o por cookies siendo más segura hacerlo por cookies (sólo la propagación del SID .. los datos siguen estando en el servidor y es grácias a ese SID que se mantiene la relación con el "archivo" físico que se crea en el servidor que sirve de "contenedor" a esas variables.

Si se tel olvida o hay problemas en la propagación del SID .. la sesión se pierde (la que estabas usando) y se crea una nueva .. así que los datos "fisicos" estarían bajo otro SID .. Este suele ser el principal problema a la hora de implementar un sistema que use sesiones: no se suele prestar atención al tema IMPORTANTISIMO de propagación del SID y .. luego llegan los problemas.

El tiempo que dura una "sesión" se configura normalmente desde configuración de PHP (por php.ini y alterable con ini_set() en muchos casos u otros médios). Por eso es importante saber que directivas de configuración intervienen en la forma o comportamiento de las sesiones para comprende cosas como "me dura la sesión una sóla página .. " o "no tienen valor mis variables de sesión" .. o "paso con un link a otra página y me funcionan las sesiones .. pero hago un redireccionamiento por javascript o un window.open o un header("location" .. ) etc y se me pierden las variables de la sesión". Todo esto (y mucho más) siempre suele ser el mismo problema: propagación del SID.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.