2013-05-07 121 views
2

在IE上,我的會話無法正常工作。會話丟失頁面刷新數據(php,apache vhost,IE)

腳本::

<? 
session_start(); 

echo "Testing sessions " . $_SESSION['test'] . " working"; 

$_SESSION['test'] = 'are'; 
?> 
  1. 加載頁面(顯示「測試工作會議」)
  2. 刷新頁面(顯示「正在測試工作會議」)至少我希望這樣的結果..

在Chrome它的工作原理 在Firefox它工作 在IE瀏覽器不工作(取決於)

情況1發生故障(IE) http://mysite.d.my-domain.com/(默認爲的index.php)

情況2件作品(IE) http://prj.my-domain.com/mysite/D(默認爲相同的index.php)

兩個鏈路在相同的物理位置我的FreeBSD/apache 2.2服務器。

如果我放置session_id('someID')它的作品,但session_id不是我所需要的。

我應該從一下: - PHP(這是基於,所以我看不出有任何理由會失敗服務器) - 阿帕奇(怎麼會變成這樣瀏覽器的影響) - IE瀏覽器(將瀏覽器來識別一個從另一個虛擬主機?)

請對所有搜索幫助已經化爲烏有

+0

你真的需要在這些字符串後面放置'$ _SESSION ['test']'嗎?爲什麼不在字符串之前實例化它。 – ROMMEL 2013-05-07 22:05:18

+0

如果我把它放在回聲部分之前,它總是會工作,因爲它會存儲在會話中,然後我輸出它。通過這種方式,你只能在頁面刷新的輸出中看到單詞「是」。事實上,在某些情況下,在IE中失敗的部分 – 2013-05-07 22:15:13

+0

這兩種情況都是在apache的部分中定義的。 – 2013-05-07 22:20:13

回答

1

一些長期的搜索我終於找到了sollutions後。

顯然,IE不能很好地處理子域名稱中的下劃線「_」字符。

但將mysite_com.mydomain.com更改爲mysite-com.mydomain.com該會話再次開始工作。

所以實際上這是網址搞亂了事情。但僅限於 mydomain.com/mysite_com的子域部分確實有效。