Foros del Web » Programando para Internet » PHP »

Pregunta de session_id

Estas en el tema de Pregunta de session_id en el foro de PHP en Foros del Web. Como van?? Mi duda es teórica, de qué o para que sirve propagar la session_id por url?? Gracias de antemano........
  #1 (permalink)  
Antiguo 31/08/2006, 07:58
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Pregunta de session_id

Como van??

Mi duda es teórica, de qué o para que sirve propagar la session_id por url??

Gracias de antemano.....
  #2 (permalink)  
Antiguo 31/08/2006, 08:21
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Si un navegador no admite siquiera las cookies de sesion y tu usas ese método, no podrán navegar por tu sitio. Propagar el SID por url te asegura que cualquiera podrá navegar, al menos eso entiendo yo.
  #3 (permalink)  
Antiguo 31/08/2006, 08:21
 
Fecha de Ingreso: noviembre-2003
Mensajes: 50
Antigüedad: 20 años, 4 meses
Puntos: 1
sirve por si tienes problemas con la propagacion normal..
  #4 (permalink)  
Antiguo 31/08/2006, 08:42
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 BiGloOl Ver Mensaje
sirve por si tienes problemas con la propagacion normal..
Y cual es la "propagación normal"?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 31/08/2006, 08:47
 
Fecha de Ingreso: noviembre-2003
Mensajes: 50
Antigüedad: 20 años, 4 meses
Puntos: 1
pues por cookies o la interna.. no?
  #6 (permalink)  
Antiguo 31/08/2006, 08:49
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Entonces???

Gracias por las respuestas, pero...., todavía me queda claro la necesidad de propagar session_id.
  #7 (permalink)  
Antiguo 31/08/2006, 08:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
PHP en cuanto a sesiones .. su funcionamiento se basa en el concepto del "SID: Identificador Único de Sesión" .. dato que "relaciona" los datos entre el servidor (donde permanecen . .no como las cookies que están en el cliente) y el cliente (que las creó y usará en su sesión en curso).

Ese "ID" de sesión, un dato aleatorio y único (SID) se ha de "propagar" . .es decir .. que el "cliente" siempre informe al "servidor" de cual debe usar. Por eso es necesario hacer llegar ese dato como sea en la comunicación cliente-servidor.

Las formas de "propagar" ese SID serían por el URL o en cookies. A su vez PHP nos "ayuda" si queremos en el aspecto de crear esa "cookie" para propagar ahí el SID o bien nos "inserta" ese SID en los links que generamos en nuestras páginas, en realidar lo que hace PHP es "re-escribir" ciertos tag's HTML .. por eso por ejemplo no lo hace con redireccionamientos como un header("Location ...") o por javascript (window.location .. etc) o incluso un "META" de tipo refresh ...

Con las funciones session_id() y session_name() se obtiene el "SID" (que también lo tenemos en la constante de nombre SID). SID en realidad (por lo menos de la constante de mismo nombre) es el "nombre de la sesión" + "ID de la sesión".

Si queremos propagar el SID a "mano" .. ya sea por el URL o creando una cookie nuestra própia .. debemos usar esas funciones para obtener el SID y pre-establecer esos valores própios.

La duda viene sobre la propagaciónd el SID .. cual sistema es mejor? . .por cookies o por el URL?

Bueno .. sobre esto todo sistema tiene sus pro's y sus contras.

Propagar el SID en cookies (session.use_cookies a ON) tienen el problema de que no todo usuario las acepta . .otros las bloquean sin saber que bloquean (paranoias) .. Así que sistemas nuestros que propagan el SID en cookies en esos casos no funcionarán. Pero, facilita el código .. (no tienes que preocuparte del "SID" .. esto mismo hace que la gente en "general" no sepa ni que existe este concepto del "SID" y que las sesiones no funcionan "por arte de mágia" sino por eso mismo .. De hecho todos los problemas con sesiones el 99% son derivados de la NO propagación del SID .. ).

Propagar el SID en el URL presenta problemas de seguridad (en www.php.net/session hay un documento que recomienda PHP.net su lecutura sobre el tema). Pero, dá la independecia de que si el "cliente" acepta cookies o no. También se hace necesario insertar el SID manualmenet en links y redireccionamientos que PHP no lo haga por defecto (si así se le indica a PHP que propague el SID por el URL: session.use_trans_sid a ON)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 31/08/2006, 09:12
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Entiendo...

Listo ya entiendo la necesidad de propagar la session, pero me surgi{o otra duda.

Esta session_id, toca guardarla en una DB??? O cómo identifica que usuario entra???? y que pasa si ya existe??, me imagino que tocará guardar la session en una DB no??, pues si se quiere manejar por URL??
  #9 (permalink)  
Antiguo 31/08/2006, 09:38
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 Carxl Ver Mensaje
Listo ya entiendo la necesidad de propagar la session, pero me surgi{o otra duda.

Esta session_id, toca guardarla en una DB??? O cómo identifica que usuario entra???? y que pasa si ya existe??, me imagino que tocará guardar la session en una DB no??, pues si se quiere manejar por URL??
No, .. es PHP quien gestiona el SID.

Es PHP quien genera un SID cada vez que haces un "session_start()" .. pero antes de generar uno nuevo "mira" si por una cookie (de ciertas características) o por el URL llega un SID propagado al script en cuestión. Si llega uno propagado (SID) válido (que la sesión exista y esté activa todavía en el servidor) .. continua usandolo y si no existe, .. la crea.

Luego ese "SID" es pasado al cliente desde PHP por una cookie o por el URL y así se continua usando el mismo por el tiempo que dure la sesión. Tu directamente (con el uso por defecto de sesiones) no gestionas el SID ni lo almacenas en ningún sitio. Es PHP el que genera por "sesión" un archivo físicamente en el servidor (donde se indique en session.save_path) de nombre tipo sess_8979adsf8789asdf .. donde ese 097asdf8a987f98a es el "ID" de sesión. Eso es lo que PHP busca para ver si existe una sesión en curso (bueno .. no sólo que exista el archivo implica que la sesión está en curso .. por qué está el concepto de "garbage" .. o archivos que ya expiró la sesión y se marcan para ser borrados posteriormente .. ).

Un saludo,

PD: .. no hables de "sesion_id" .. el concepto es: SID en general a lo que te refieres.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 01/09/2006, 08:02
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Listo...

Ou!!!! Gracias Cluster por la aclaracion ahora creo ir mas a la fija con esto del SID.

Y gracias por el consejo....
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 07:46.