it-swarm.dev

Cosa potrebbe causare la perdita intermittente dei dati della sessione di Joomla?

La mia domanda è ispirata da un vecchio problema che non credo di aver risolto correttamente. Stavo memorizzando le informazioni sull'array in una sessione di Joomla a cui ho avuto accesso poco dopo. Ho scoperto che a intermittenza mancava la variabile Joomla che avevo impostato.

Per interesse puoi vedere il mio problema originale su https://stackoverflow.com/questions/13052495/how-to-prevent-race-conditions-when-writing-reading-joomla-session-variables-fr =

Non ho intenzione di porre la stessa domanda, invece, speravo di ottenere risposte per le seguenti domande correlate.

  1. Cosa potrebbe causare la perdita intermittente dei dati della sessione di Joomla?
  2. Come posso risolvere le variabili di sessione Joomla mancanti?
1
TryHarder

Sulla base di ciò che ho visto, ci sono alcuni modi in cui i dati della sessione "vanno persi".

  1. Il primo modo è esattamente ciò che la gente ha già menzionato o suggerito. Qui è dove si raggiunge il limite del timer della sessione. Una volta raggiunto il timer della sessione, la sessione viene cancellata dalla memoria.

  2. Quando ti disconnetti, i dati della sessione vengono cancellati. Dipende da quale funzione di logout viene chiamata e da quale versione di Joomla. Ho visto alcuni casi in cui è stata cancellata solo la parte Sessione Joomla. Ho anche visto casi in cui l'intero $ _SESSION globale viene cancellato.

  3. Ho anche visto alcuni casi di tentare di archiviare i dati della sessione tramite le API di Joomla senza archiviare nulla o archiviarli in un luogo che non ti aspetti. Dopo aver impostato una variabile di sessione, scarica la sessione per assicurarti che sia impostata e dove pensi che sia.

  4. Questo è più comune per i dati di sessione mancanti casuali. Questo è quando si raggiunge il limite www/non-www o http/https. Apache (il server Web primario per i siti Joomla) a volte viene confuso quando lo stesso browser attraversa il confine www/non-www o http/https. Alcuni allestimenti lo gestiscono bene, altri no, ma è abbastanza comune. Ecco la parte interessante, non deve nemmeno essere il collegamento principale a cui si collegano che attraversa quel ponte, potrebbe essere un CSS, un file JS, un'immagine, ecc. Inclusi nella stessa pagina che si trova sul www/non- www o http/https bridge che potrebbe causare il problema. Oggi è molto raro, ma l'ho visto su più di un sito.

Questi sono gli unici modi in cui riesco a pensare fuori dalla mazza che potrebbe mostrare questo comportamento.

2
Donald Champion

Un'altra possibilità è che i dati della sessione vengano troncati a causa dei caratteri della lingua. Se la memorizzazione nel db verifica che i dati della sessione siano completi (racchiusi correttamente {}).

Ad esempio, se la sessione tenta di memorizzare Montréal, potrebbe essere troncata a Montr. Tutto dopo aver perso Montr e i dati della sessione possono essere aggiornati più a lungo.

1
mwf