2012-11-05 91 views
1

的index.php會話變量泄漏到全局命名空間

session_start(); 
$_SESSION['a']='test'; 
echo $a; 
die(); 

當我運行上面的,我第一次得到了一個空白屏幕,並沒有錯誤。頁面刷新後輸出test

它不會在我的開發服務器上執行此操作,僅在生產時(在Hostgator上共享)。

這是服務器故障嗎?

+0

$ a沒有定義? –

+0

register_globals定義它。那就是問題所在。 –

+0

是的... –

回答

0

register_globals不幸的是你的Hostgator託管打開。你需要在你的php.ini中關閉它,如果他們讓你訪問它的話。

+0

你應該找一個更好的主人。 register_globals自PHP 5以來已被棄用,我相信自5.3以來徹底刪除。它在5年以上沒有被默認打開。它與您的主機一起應該被視爲警告標誌。 –

+0

http://support.hostgator.com/articles/specialized-help/technical/register-globals-and-other-php-settings –

+0

爲了跟進,上面給出的鏈接中的說明不適用於我。雖然它成功地關閉了register_globals,但它打破了其他一些東西。但是,如果您請求了它們,它們將爲您提供完整的php.ini文件並將其設置爲關閉register_globals。似乎現在工作。 –