2015-11-21 25 views
0

我在我的項目中使用會話數組,因此我必須使用 $_SESSION['checkToken']['quote']這幾乎適用於所有文件。但在幾個文件中,我正面臨錯誤 undefined variable _sessionYii 1:在某些文件上獲取「undefined variable _session」

ex。在我的TempMediaController中,當我要訪問 echo $_SESSION['checkToken']['quote']時,我面臨同樣的錯誤。但同樣的事情在其他控制器工作。

爲了避免這個錯誤,我得到了一個解決方案。我開始TempMediaController我加@session_start();。這解決了我的問題。但我知道這是不正確的方式。那麼解決這個問題的正確方法是什麼?

+0

看來,當操作被觸發時,會話不會自動啓動。 –

回答

1

$_SESSION是超級全局變量。它將在整個應用程序中可用。請確保僅在註銷功能中撥打session_destroy

+0

是的你是對的,但'$ _SESSION'是全局變量。但是在很少的文件中它會給出錯誤。但是我已經定義了'$ _SESSION ['checkToken'] ['quote']''。而且我並沒有破壞會議。 – Dhara

0

正如您所提到的,要正確使用會話,您需要在每個腳本的頂部調用session_start(),以防止$_SESSION未定義。使用CHttpSession而不是$_SESSION

+0

我必須調用'session_start()'在那些我得到'未定義會話'錯誤的頁面上。 – Dhara

+0

@Jazz可能是這個主題幫助http://stackoverflow.com/questions/7237028/undefined-variable-session-when-sending-variables-via-post-through-javascript – SiZE

+0

你嘗試使用CHttpSession? @爵士樂 – SiZE