我認爲這會很簡單,但我想有一個地方... 我正在開發一個Joomla安裝代碼的自定義部分,我需要先取消設置一些會話變量執行我的代碼。所以,當然,我有Joomla - 取消設置多個會話變量不起作用
$session->clear('var1');
$session->clear('var2');
$session->clear('var3');
$session->clear('var4');
但該頁面顯示完全空白,什麼也沒有發生。有什麼建議麼?
我認爲這會很簡單,但我想有一個地方... 我正在開發一個Joomla安裝代碼的自定義部分,我需要先取消設置一些會話變量執行我的代碼。所以,當然,我有Joomla - 取消設置多個會話變量不起作用
$session->clear('var1');
$session->clear('var2');
$session->clear('var3');
$session->clear('var4');
但該頁面顯示完全空白,什麼也沒有發生。有什麼建議麼?
假設你有這樣的$ session變量:
$session = JFactory::getSession();
如果你得到一個空白頁面,你可能有些錯誤在你的代碼。你有訪問某種錯誤日誌嗎?如果不是,您可以嘗試強制顯示代碼中的錯誤,如果它不是生產環境(儘管它不是最好的方式)或者啓用joomla管理員的調試模式。
您也可以嘗試在您的瀏覽器中運行php文件,如果一切正常並且文件中沒有解析錯誤,您應該會看到「受限訪問」或類似信息。
此外,如果腳本不崩潰,你可以查閱一下值返回每次調用$會話級>明確(「XXX」)(它應該返回
的最後一件事,你剛剛清除的值。我想到的是你存儲在會話中的變量是在不同的「上下文」中,當你獲取/設置數據到會話時,你可以傳遞一個「名稱空間」作爲附加參數,所以這些變量存儲在「命名空間」(事實上,它的存儲會話內的另一個指標裏面所以如果可能的話,你應該檢查一下這些變量使用不同的「命名空間」存儲在會話:
$session->set('var1', $value, 'another_namespace');
如果是的話,你應該清楚這樣的:
$session->clear('var1', 'another_namespace');
P.S:我說的「命名空間」,因爲它的參數名稱的Joomla使用在這些會議上的方法,但不要混淆與PHP命名空間。
我希望它有幫助!