Ho problemi con la mia applicazione CakePHP. Questo sembra accadere solo in IE e solo su alcuni computer. È coerente sui computer dove sta accadendo però.CakePHP Cookie/Problemi di sessione
Problema uno: utente è collegato e nella pagina https://example.com/users/view e scatti firmare fuori. L'utente viene reindirizzato a http://example.com e sembra essere disconnesso fino a quando l'utente visita un'altra pagina https e sono ancora connessi. Possono fare clic su Esci tutte le volte che vogliono, ma sono sempre connessi su https e si disconnettono solo su http.
Problema due: utente si collega al https://example.com/users/signin vengono reindirizzati a http://example.com e ora sembrano essere loggato per l'utente va a https://example.com/admin/slides e non lo sa ancora, ma ora è disconnesso, cliccando su qualsiasi altra pagina (. o semplicemente aggiornando la loro pagina corrente) chiederà loro di accedere di nuovo.
Non ho idea di cosa sta succedendo. Ho letto e provato le soluzioni descritte su entrambi questi problemi simili: Session not saving when moving from ssl to non-ssl e Cookie not renewing/overwriting in IE ma ho ancora gli stessi problemi.
L'unico indizio che ho notato finora, (e non so se questo significa qualcosa) è quando il debug sia $_SESSION
e $this->Session->read()
sulle pagine HTTP SEMPRE solo $ this-> session-> read() restituisce un valore. sulle pagine HTTPS alcuni SEMPRE restituiscono lo stesso valore per entrambi, gli altri SEMPRE restituiscono solo un valore per $ this-> Session-> read().
Ad esempio, http://example.com e https://example.com/users non vede mai $ _SESSION, https://example.com/carts vede sempre $ _SESSION. Non sono sicuro, ma penso che forse le pagine sicure dovrebbero vederlo e dato che alcuni non possono forse qualcosa non va, tuttavia quando scruto il codice non vedo alcuna differenza che possa suggerire il motivo per cui uno fa e l'altro no. t.
Inoltre, se aggiungo $this->Session->destroy()
a beforeFilter in AppController, tutte le pagine anche HTTP possono vedere $ _SESSION. In realtà non sto usando $ _SESSION nella mia applicazione, ho solo pensato che questo potrebbe essere un indizio di cosa non va.
UPDATE
ho tooked consiglio di Gustav Bertram e guardò la stringa user agent. Ho confrontato la stringa dell'agente utente con IE su un computer che stava riscontrando il problema con IE su un computer che non presentava il problema. Erano gli stessi eccetto quello che stava avendo problemi ha "google chrome frame" nella stringa user-agent. Ho disinstallato Google Chrome Frame da quel computer, riavviato, riprovato e il problema sembrava risolto.
Se questa è la vera causa, la soluzione più semplice sarebbe fare in modo che gli utenti disinstallino Chrome frame. Tuttavia mi chiedo se ci sia un lavoro in giro che consentirebbe loro di avere il telaio cromato installato e ancora funzionante.
(presumo che tu abbia eliminato i soliti sospetti di memorizzazione nella cache.) Quali versioni di IE? Il bricolage con le intestazioni di pagina (controllo della cache, ecc. - vedere http://support.microsoft.com/kb/234067) ha qualche impatto? – OpenSorceress
Il contenuto della sessione è codificato o qualcosa del genere? Potrebbero essere opzioni di sicurezza .. – Dunhamzzz
La pagina ha contenuti flash? Hai provato a cambiare la sicurezza della sessione da HIGH a LOW? – binoy