Neden çerezleri IE6 / 8 kaybolan olacak, ve ben bu konuda ne yapabilirim?

5 Cevap php

Ben mağaza PHP'nin $ _SESSION giriş bilgilerini bir sitede bir giriş kurulum var, ve bir onay kutusu işaretli ise ek giriş bilgileri ile bir iki haftalık çerez ayarlar. Kullanıcı geçerli oturum açma bilgisi ya da POST tarafından sunulan veya ya çerez doğru ise kaydedilir kabul edilir.

Amaçlandığı gibi FF3/Chrome üzerinde davranıştır, en azından ile onay kutusunun işaretli "Beni hatırla": her yerde oturum ve her yerde sitede oturum açmış olan olarak kabul edilir

Ancak, IE6 ile çalışan birisi o, bir yerde oturum sitenin diğer bölümlerine bağlantılar etrafında tıkladım, ve tekrar oturum istendi söyledi. Benim (Multiple IE) IE6 ile bazı belaya girdi, ama ben Gelişmiş Gizlilik Ayarları-> Her oturum çerezleri izin ayarı, aksi takdirde elimden geldiğince hoşgörülü olmak Çerez izinlerini ayarlamak gibi, IE8 benzer davranış çoğaltılamaz. Davranışları aynıydı: Bağlı olarak sizi tanımadığı için, _SESSION ve iki haftalık çerez hem koymalıdır bir şekilde tek bir yerde oturum başka sayfalara linklere tıklayın ve sayfa bir giriş ekranı ile size sunar . PHP Gentoo sunucuda 5.2.8 olduğunu.

Herhangi bir öneri veya kaynakları çerezleri kabul alıyorum?

-

[Fiddler ile trafiği kontrol ettikten sonra eklendi:]

Teşekkür ederim; Fiddler 2 indirdiğiniz.

Söz çıkışlarını üzerinde ... [name] = silindi: Fiddler Set-Cookie bildiriyor. Ben şu anda neden olarak şaşkın. Bir giriş ekranı denetler ve görüntüler de dahil dosya sadece $ _GET ['çıkış'] ayarlandığında eğer bir koşullu içinde, ilgili çerezleri silebilirsiniz bir alana sahiptir. Ben bu olay görmedim ve ben çerezleri silmek için tabloların önce koşullu içinde bir hatalar.log () deyimi koymak, hiçbir ek iletileri kaydedilebilir gibi görünmeyebilir.

5 Cevap

Eksik belge 14 gün içinde iken onlar farklı önbelleğe tedavi edildi çünkü Firefox ve IE farklı davranışlar Bitiş tarihi: set olmuştu başlıklarını Sonunda şöyle oldu ne buldum.

Firefox görünüşte eksik veriler için bir kez kontrol, ve sonra tekrar talep değildi.

IE, diğer taraftan, bir stil için yanlış yolu veren bir öğe için kontrol tutulan 404 sayfaları var ve özel 404 sayfa, belki de değil iyi Demirbaş (çıktınız olan kullanıcı tetikleyen o oturum için bir klişe daveti yaptı .) Ben stil önbelleğe oldu sanırım, ama IE eksik öğeleri için soran tutulur.

Bu yüzden farklılıkları artı dolaylı dahil artı 404 sayfa davranışını önbelleğe edildi.

Önerileri çift

  • Cookie ve iletilen görmek için HTTP istekleri ve yanıtları incelemek için Fiddler veya benzer kullanmayı deneyin. Bu neyin yanlış gittiğini içine daha fazla ışık
  • App çıktı a P3P header, örneğin sahip deneyin header('P3P: CP="CAO PSA OUR"');

Diğer tarayıcılar bu paçayı izin verirken: (developer_1_test.example.com yani) dışarı atlamak ve sizi ısırabilir bu tür ince One şey IE çizgi ile alan adları izin vermiyor olmasıdır. Üretimde bunu v.likely değiliz ama bu vb farklı geliştiriciler / kod şube / vhosts için bir demet kuruyoruz bir geliştirme ortamında kolay bir gözetim bulunuyor.

Daha spesifik olmak gerekir. Hem tarayıcılarda bu davranışını çoğaltmak tam olarak öğrenin ve size hata buldum. Örneğin, aramak için başarısız konum, bir ya da iki sayfa olabilir session_start().

Bu özellikle $ _SESSION değişkeni görülüyor değilse, o hatırlamak önemlidir ve sizin giriş bir yönlendirme neden, büyük olasılıkla kırık sisteminin bir parçası bulunuyor.

Bu durumda ben kontrol ilk şey setcookie () fonksiyonu için etki parametre doğru ayarlanmış olmasıdır.

Ben çerez alanı 'example.com' ayarlanır, ancak sitesi 'www.example.com' aracılığıyla erişilen ediliyor örneklerini gördüm.

Eğer example.com de sayfanın içine açmış Örneğin, sonra www.example.com bir sayfaya aldı bir link tıklandığında, artık oturum olacaktır

Geçici çözüm emin tüm iç bağlantı sizinle çerez ayarladığınız tutarlı veya sağlamak ya '. Example.com' tüm alt etki alanları için çerez olanak sağlayacaktır.