2011-10-30 55 views
2

我有一個存儲在$ _SESSION變量中的數組(mysql查詢結果)。爲什麼我只能獲取存儲在Session中的第一個字符?

現在,我試圖訪問一個成員數組像:現在

$_SESSION["template"]["key"] 

,問題是它給字符串「鍵」的只有第一個字符。奇怪的是,它在本地主機上完美運行,並且也在我以前的主機上運行。 (我現在在hostgator上)。

我在做什麼錯?

回答

5

這意味着您$_SESSION["template"]變量是一個,從而,$_SESSION["template"]["key"] 評估以$_SESSION["template"][0]並返回第一個字符。

爲什麼你的$ _SESSION [「模板」]是一個字符串,而不是一個數組 - 是一個調試問題。您可以立即開始。

如果您對register_globals和一些變量,名爲$tamplate,它可能改寫$ _SESSION內容

+0

我恨鴨子類型 – gd1

+0

好的,知道了。然後我必須分開存儲所有變量。沒有辦法在SESSION中存儲數組和其他數據類型嗎? –

+0

如這裏演示==> http://codepad.viper-7.com/iSqR70 –

1

的問題是,$_SESSION["template"]不是一個數組而是一個字符串。 ["key"]被視爲指數[0]導致的第一個字符

所以你的代碼是一樣的$_SESSION["template"][0]

+0

哦!那麼,有沒有辦法呢?除了我必須分開存儲變量。 –

+0

@ShashankJain:爲了能夠做到這一點,您必須將「模板」作爲一個數組。你的「模板」目前是一個字符串 – genesis

+0

,但我將mysql_fetch_array的結果存儲到$ _SESSION [「template」]中。 –

相關問題