IE tutarsız oturum verileri - oturumları önbelleğe?

1 Cevap php

Ben sitemde bazı temel tıklayın-sahtekarlığı önlemek için çalışıyorum, ve oturum zamanlı verilere dayalı bağlantıları inşa ediyorum.

Her şey FF çalışır, ama IE'de ben oturumda depolamak ediyorum bilgiler bir şekilde değiştiriliyor.

Ben ana sayfasını yüklediğinizde, ben böyle benim oturum değişkenleri ayarlanır

session_start();
$_SESSION['time']=time();

I'm out putting the session value into the page, so I get something like 1275512393.

Kullanıcı bir linke tıkladığında, ben bir ajax isteği göndermek ve bu sayfa ben bir uyarı içine koyarak duyuyorum oturumu dönüyor.

session_start();
echo $_SESSION['time'];
die();

The alert is returning 1275512422.

Sadece IE orijinal $ _SESSION ['zaman'] farklı döndürülen $ _SESSION ['zaman'] olduğunu

Bu kez çok birbirine yakın her zaman olduğu gibi, bu, bir önbelleğe alma sorunu olduğunu ve ikinci bir ilk sonra her zaman olduğu görünmüyor, ama olumlu değilim.

-------- Güncelleme - facebook javascript kaynaklanan bir sorun. henüz bir çözüm --------------

I MANCHUCK başına tavsiye edilen şekilde yayınlamak için kod dışarı sıyırma gibi, ben Facebook bu kod bit şekilde soruna neden olup olmadığını merak etmeye başladım

FB.ini ({appId: 'myappid', status: true, cookie: true, Xfbml: true});

bu yüzden o dışarı çıkardı ve sayfayı yeniden koştu ve şimdi $ _SESSION kez eşleşti!

So I found the problem. I thought maybe somehow that FB javascript was creating a session (note I'm only useing FB javascript, not the PHP api) that was somehow overwritting the values of my previous session.

I put the offending javascript back, and I tried changing the name of my session to $_SESSION['mytime'] or $_SESSION['time2'], but the problem still existed. I tried using other time functions like date('Y-m-d G:h:s'), or date('Y-m-d G:h:s').'test' but the time is always incremented by a few seconds when retrieving the $_SESSION from the second page.

Ben böyle bir şey ne olabilir ki şaşırıyorum, ve nasıl mümkün olduğunu hayal bile edemiyorum, ama şimdi ona geri 4 kez gittim ve ben Javascript bir satır, her şeyin çalıştığını çıkarmak her zaman!

Ne yazık ki, Facebook Connect kullanarak gerçekten bu proje için bir seçenek değildir.

1 Cevap

Benim tahminim ana sayfa $ _SESSION ['zaman'] atanan yeni bir değer ile yeniden oturumu neden olan, iki kez idam ediliyor olmasıdır. O zaman biraz artırılır nedeni budur. Web sunucusu günlükleri bakmak, ya da sayfa iki kez talep ediliyor görmek için Fiddler kullanın. Eğer öyleyse, this yardımcı olabilir.