Benim yerel makinede bekleniyor ama uzak sunucuda ama sadece Internet Explorer'da başarısız gibi fonksiyonlar üzerinde çalışıyorum bir siteye oturum. Kicker bu uzak makinede sadece, yerel IE değil çalışır.
Ne dünyada, bu neden olabilir? Ben uzak makinede kod boyunca adım atmış ve veritabanında kontrol ediliyor girilen giriş değerleri, buldukları ve sonra bir giriş işlevi denir görebilirsiniz. Bu iki $ _SESSION değişkenlerini ayarlar ve ana yönetici sayfasına yönlendirir. Ancak sadece IE $ _SESSION değişkenleri ana yönetici sayfasına gitmek zaman mevcut değildir (yerel makinede çalıştırmak değil ... Bu anahtar). var_dump($_SESSION) uzak sunucuda (çalıştırdığınızda benim yerel çevre ve IE 6, 7 ve 8 dışında her tarayıcıda bu çalıştırırken her tarayıcısında beklediğiniz bana veriyor ben sanki bir null değeri nereden hiçbir $ _SESSION) için kuruldu.
Bu gerçekten beni çok herhangi bir tavsiye takdir şaşkına gelmiştir.
Bir ... Örneğin IE, yerel olarak çalışan, var_dump bana verir:
array
'Username' => string 'theusername' length=11
'UserID' => string 'somevalue' length=9
Uzak sunucuda çalıştırın (IE sadece ... diğer tarayıcılarda çalışıyor) var_dump bana verir:
array(0){}
Kod (minimal bir örnek ... gerçekten bir kod örneği, bu konu ile gerekli olmasa da):
$User = GetUser($Username, $Password);
if ($User->UserID <> "") { // this works so we call Login()...
Login($User); // this also works and gives expected results. on to redirect...
header("Location: index.php"); // a var_dump at index.php shows that there is no session data at all in IE, remotely.
} else {
header("Location: login.php");
}
function Login($data) {
$_SESSION['Username'] = $data->Username;
$_SESSION['UserID'] = $data->UserID;
// a var dump here gives the expected data in every browser
}
EDIT: bu çözüldü. Bu test sunucusu üzerinde alan adı içinde bir çizgi vardı olmasıydı. Şu anda bunun için Google'a zaman var ama some_client.ourcompany.com gibi bir şey adlı çizgi, sorun yok neden ve hiçbir fikrim yok. Gotta Internet Explorer seviyorum ... bu sadece önlemek değil bir pasif agresif meslektaş gibi.