私のCakePHPアプリケーションに問題があります。これはIEでのみ起こっているようですが、特定のコンピュータでのみ発生します。それは起こっているコンピュータ上で一貫しています。CakePHP Cookie /セッションの問題
問題1: ユーザーがログインしていて、ページhttps://example.com/users/viewにログアウトしています。ユーザーはhttp://example.comにリダイレクトされ、ユーザーが別のhttpsページにアクセスし、ログインしている間はログアウトされているように見えます。ログアウトは何度でもクリックできますが、常にhttpsにログインしてログアウトしますhttp。
問題2:。彼らはhttp://example.comにリダイレクトされ、今で記録されているように見えているhttps://example.com/users/signinの中 ユーザーがログインユーザは、(https://example.com/admin/slidesに行くと、まだそれを知らないが、今、他のページをクリックすると、ログアウトされますまたは現在のページを更新するだけで)再度ログインするように求められます。
何が起こっているのか分かりません。私はこれらの似たような問題の両方に記載された解決策を読んで試しました:Session not saving when moving from ssl to non-sslとCookie not renewing/overwriting in IEしかし、私はまだ同じ問題を抱えています。私は返すread()はHTTPページ常に唯一の$ this - >セッション - >を上の両方$_SESSION
と$this->Session->read()
をデバッグするとき
私がこれまでに気づいた唯一の手掛かり、(これは何を意味している場合、私は知らない)があります値。 HTTPSページでは、常に両方とも同じ値を返しますが、他のものは常に$ this-> Session-> read()の値を返します。
たとえば、http://example.comとhttps://example.com/usersは$ _SESSIONを認識しません。https://example.com/cartsは常に$ _SESSIONを表示します。私は確信していませんが、セキュリティで保護されたページが見えるはずですが、何かが間違っているとは考えられないかもしれないと思っていますが、コードを調べると、 t。
さらに、$this->Session->destroy()
をAppControllerのbeforeFilterに追加すると、HTTPでもすべてのページに$ _SESSIONが表示されます。私は実際に私のアプリケーションで$ _SESSIONを使用していない、私はちょうどこれが間違って何かの手掛かりかもしれないと思った。
UPDATE
私はグスタフ・バートラムのアドバイスをtookedし、ユーザーエージェント文字列を見ました。私は、問題を抱えていなかったコンピュータ上でIEに問題を抱えていたコンピュータでIEとユーザーエージェントの文字列を比較しました。彼らは、問題を抱えていたものを除き、ユーザーエージェント文字列に "google chrome frame"があることを除いて同じでした。そのコンピュータからGoogle Chrome Frameをアンインストールして再起動し、もう一度試してみると問題は解決したようです。
これが真の原因ならば、単純な解決策はユーザーにChromeフレームをアンインストールさせることです。しかし、私は彼らがクロムフレームをインストールして、まだ動作するようにする回避策があるのだろうかと思います。
(私はあなたが通常のキャッシングの容疑者をノックアウトしたと推測します)どのバージョンのIEですか?ページヘッダー(キャッシュ制御など - http://support.microsoft.com/kb/234067を参照)で微妙な影響がありますか? – OpenSorceress
セッションの内容がスクランブルされていますか?セキュリティオプションがあります。 – Dunhamzzz
ページにはフラッシュコンテンツがありますか?セッションセキュリティをHIGHからLOWに変更しようとしましたか? – binoy