Como van??
Mi duda es teórica, de qué o para que sirve propagar la session_id por url??
Gracias de antemano.....
| |||
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. |
| |||
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. |
| ||||
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?? ![]() |
| |||
Cita: No, .. es PHP quien gestiona el SID.
Iniciado por Carxl ![]() 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?? ![]() 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. |