it-swarm-es.tech

¿Qué podría causar que los datos de la sesión de Joomla se pierdan intermitentemente?

Mi pregunta está inspirada en un viejo problema que no creo que haya resuelto correctamente. Estaba almacenando información de matriz en una sesión de Joomla a la que accedí poco tiempo después. Descubrí que de forma intermitente faltaba la variable de Joomla que había configurado.

Por interés, puede ver mi problema original en https://stackoverflow.com/questions/13052495/how-to-prevent-race-conditions-when-writing-reading-joomla-session-variables-fr =

Sin embargo, no voy a hacer la misma pregunta, sino que esperaba obtener respuestas para las siguientes preguntas relacionadas.

  1. ¿Qué podría causar que los datos de la sesión de Joomla se pierdan intermitentemente?
  2. ¿Cómo podría solucionar las variables de sesión faltantes de Joomla?
1
TryHarder

Basándome en lo que he visto, hay algunas maneras de que los datos de la sesión "se pierdan".

  1. La primera forma es exactamente lo que la gente ya ha mencionado o sugerido. Aquí es donde llegas al límite del temporizador de sesión. Una vez que se alcanza el temporizador de sesión, la sesión se borra de la memoria.

  2. Cuando cierra sesión, los datos de su sesión se borran. Depende de qué función de cierre de sesión se llame y qué versión de Joomla. He visto algunos casos en los que solo se borra la parte de sesión de Joomla. También he visto casos en los que se borra todo el $ _SESSION global.

  3. También he visto algunas instancias de intentar almacenar datos de sesión a través de las API de Joomla, no almacenar nada en absoluto o lo almacena en un lugar que no espera. Después de configurar una variable de sesión, voltee la sesión para asegurarse de que esté configurada y de donde cree que está.

  4. Este es más común para datos de sesión perdidos al azar. Esto es cuando golpeas el límite www/non-www o http/https. Apache (el servidor web principal para los sitios de Joomla) a veces se confunde cuando el mismo navegador cruza el límite www/no www o http/https. Algunas configuraciones lo manejan bien, otras no, pero es bastante común. Aquí está la parte interesante, ni siquiera tiene que ser el enlace principal al que están enlazando que cruza ese puente, podría ser un CSS incluido, un archivo JS, una imagen, etc. en la misma página que está en www/non- www o http/https bridge que podría estar causando el problema. Eso es muy raro en estos días, pero lo he visto en más de un sitio.

Estas son las únicas formas en que puedo pensar de inmediato que podrían mostrar este comportamiento.

2
Donald Champion

Otra posibilidad es que los datos de la sesión se trunquen debido a los caracteres del idioma. Si se almacena en la base de datos, verifique que los datos de la sesión estén completos (debidamente encerrados {}).

Por ejemplo, si la sesión intenta almacenar Montréal, puede truncarse a Montr. Todo después de que Montr se pierda y los datos de la sesión ya se puedan actualizar.

1
mwf