2013-03-22 198 views
0

我一直在使用的網站上我建立PHP會話和它一直工作正常,直到今天早上奇怪:PHP會話停止工作

其中一個網頁上:

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

然後第二頁我嘗試:

session_start(); 
print_r($_SESSION['myarray']); 

但是它顯示一個空數組。

我已經檢查過1頁,而且數組裏有數值。

有什麼想法來尋找調試呢?

謝謝。

(已解決):最終解決了這個問題 - 該行必須位於每個頁面的頂部,您使用任何會話變量 - 從字面上看,行號爲1!

+0

當您使用'print_r($ _ SESSION);'或'echo $ _SESSION ['myarray']' – Vinay 2013-03-22 14:12:35

+0

時,您會得到什麼?確保第一頁上的會話變量在您到達之前沒有被覆蓋第二頁,並在第一頁末尾的$ _SESSION中使用var_dump來確保會話數據仍然存在。 – llanato 2013-03-22 14:13:27

+0

嗨,變量沒有被覆蓋,因爲它的集合在最後一次正確。當我在第二頁上做一個var_dump時,我得到了數組(0){} 奇怪的是,這是昨天工作100%罰款 - 從那時起我只在模態視圖完全獨立於會話代碼。 – 2013-03-22 14:21:53

回答

0

檢查你的php設置是否有'register_globals = On'。我認爲是這樣。 當你在你的php設置中設置了register_globals時,它會將

$ _SESSION ['myarray']和$ myarray視爲相同。

解決方案將禁用php中的register_globals,因爲它在較新版本中已被棄用。 否則在$ _SESSION變量中使用不同的鍵名或將$ myarray變量更改爲不同的名稱。