Ver Mensaje Individual
  #19 (permalink)  
Antiguo 18/12/2004, 20:22
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por pellagofio
Cluster.

según tu respuesta:

...pero habría que ver donde creas tu variable de sesión y de como propagas el SID de la sesión .

¿de que que formas se puede propagar el SID de una sesión?

Yo lo poco que he usado sesiones lo "unico que hago" que poner session_start(); y ya tengo las variable disponibles en ese script.

¿Cuantas formas hay de propagar el SID y como se hace la propagación?
El SID de una sesiòn (Identificador Único de sesión) se ha de propagar siempre para que te funcionen las sesiones.

De hecho es ese "SID" el que relaciona y "ata" al cliente (que iniciò la sesión) con el servidor (el archivo que se crea en el servidor y que contiene tus variables de sesiòn). Por eso .. si se pierde ese "SID" o no es propagado .. no puedes acceder a tus variables de sesiòn.

El SID lo puedes propagar de 2 formas principalmente ..
* Por el URL
* Por cookies

Por el URL a su vez tiene dos mètodos .. uno "automático" donde PHP bajo la directiva: session.use_trans_sid =ON (y en conjunto con url_rewrite_tags) de tu php.ini .. define que PHP sobre-escribirà ciertos tags HTML para "incrustrar el SID" en ellos. .. Eso lo veras en sitios como este foro donde ves que hay una variable siempre en el URL tipo: nombre=978as8df7879asdf987as .. todo eso es el "SID".

Si no lo hace PHP automàticamente .. lo tendràs que hacer tu a mano. Tendràs que incrustar el SID en tus links, formularios (campos hidden o en el acction ..) y otro tipo de redireccionamientos que hagas.

De hecho .. PHP en "modo automàtico de progaciòn del SID en el url" NO sobre-escribe para incrustrar el SID en ellos en redireccionamientos javascript, ni en header("Location: ....") de PHP .. ni en etiquetas "META" de HTML tipo "refresh".

La otra opciòn de propagar el SID es en Cookies, lo define PHP en su directiva (php.ini): session.use_cookies (y opcionalmente session.use_only_cookies = ON). Esta es la opciòn màs segura para propagar el SID .. pero requiere que tu cliente (navegador) acepte cookies. No require nada màs extra en tu programaciòn habitual .. sòlo como siempre iniciar el uso de sesiones con session_Start() y listo .. cualquier tipo de redireccionamiento que se haga no hay que hacer nada màs. El SID viaja en tu cookie y es leido de esa cookie de ese cliente que la iniciò.

Si en tu caso ni conoces que es el SID .. es por què lo propagas en cookies y por suerte dispones de un navegador que las acepta (las cookies) .. asì que nunca veras el SID en el URL (pues "viaja" en tu cookie) y siempre te funciona la propagaciòn del SID .. pues es tomada de la cookie.

En las FAQ's de este foro hay unas cuantas de ellas que tratan el tema de sesiones, una de ellas explica bastante bien casi todo esto que te he expuesto aquì. Es necesario conocer "como funciona" no sòlo con "còdigo" sino con "teorìa" y sobre todo con que configuraciòn de PHP puede afectar al comportamiento de estas para saber como solventar un problema o por donde mirar. (principalmente va esto dirigido a el_cesar) ...

Un saludo,