2012-01-19 41 views
0

此問題僅在IE中。 Mozilla和Chrome工作正常,定位我出錯的地方非常困難。

我有一個for循環建立多層次$ _SESSION VAR例如:

$seq = 1; 
for($d=1; $d<=10; $d++){ 

    if($_POST["COMPANY_$d"] && $_POST["PHONE_$d"]){ 
     $_SESSION['c'][$seq]["COMPANY"] = $_POST["COMPANY_$d"]; 
     $_SESSION['c'][$seq]["PHONE"] = $_POST["PHONE_$d"]; 
     if($_POST["COUNTRY_$d"] == 'Canada'){ 
      $_SESSION['c'][$seq]["STATE"] = $_POST["STATE_$d"]; 
     }else{ 
      $_SESSION['c'][$seq]["STATE"] = $_POST["STATE_2_$d"]; 
     } 
     $_SESSION['c'][$seq]["COUNTRY"] = $_POST["COUNTRY_$d"]; 
     $_SESSION['c'][$seq]["ADDY1"] = $_POST["ADDY1_$d"]; 
     $_SESSION['c'][$seq]["ADDY2"] = $_POST["ADDY2_$d"]; 
     $_SESSION['c'][$seq]["CITY"] = $_POST["CITY_$d"]; 
     $_SESSION['c'][$seq]["ZIP"] = $_POST["ZIP_$d"]; 

     $seq++; 
    }//end declare var in $_SESSION 

}//end for 

當我在Mozilla的print_r($ _ SESSION)我得到正確的價值觀,但在IE中我得到的是:

Array 
(
    [c] => 11 
) 

我不確定11是否來自我的循環或其他代碼的地方。我已經花了3個小時,用細梳梳子通過代碼,找不到任何干擾。這在Mozilla的作品,與IE瀏覽器有什麼關係?我的問題是什麼?

+0

您的php配置爲使用cookie來存儲'$ _SESSION'嗎?默認情況下,它們存儲在內部,永遠不會離開網絡服務器。 – J0HN

+3

這很奇怪。會話不應受瀏覽器的影響,它們在服務器端進行管理。嘗試清除您的IE緩存和Cookie列表。在Firefox和Chrome上也一樣。 –

回答

0

如果您在IE中禁用了Cookie,則PHP會嘗試將該會話ID附加到該URL,以便它可以將該會話連接到您的瀏覽器。如果您的應用程序無意中從代碼中清除了URL的會話ID,或者您通過.htaccess進行了任何命令設置,那麼這可能是問題所在。我首先檢查你的IE瀏覽器,並確保它沒有禁用cookie來驗證問題。

相關問題