簡體   English   中英

Joomla在會話上存儲數據

[英]Joomla store data on session

我正在修改joomla組件(jQuarks),以便從模塊中獲得所需的行為,以便進行在線測驗/考試。 基本上,我希望能夠使用會話變量來存儲以下項目:

  • 用戶身份
  • QuizSessionID(本身不是Joomla會話,因為這是jQarks的“會話”)
  • 測驗開始時間
  • 上一個問題已回答的頁面(或id並不重要,但是由於我正在使用頁面,因此是最佳選擇)
  • 先前所有已回答的問題(即問題ID和答案ID)

為了實現這一點,我使用了JFactory :: getSession(),但是我有一些疑問。

第一個是:會話變量是存儲此數據的最佳方法嗎? 如果沒有,我如何或在哪里存儲此信息? 每當用戶單擊導航到下一頁時,我都想存儲給出的答案並將其添加到先前給出的答案中。 這是否會讓我不得不不斷銷毀並重新創建會話? 如果用戶有任何機會需要刷新頁面,則當前組件的行為是創建一個新的quizSession,從而重置所有內容而不存儲任何內容。 Joomla Session變量是否足以強制執行我想要的行為? (恢復用戶啟動的quizSession)

如果這是錯誤的方法,我應該怎么用? 我並不精通Joomla的開發,並且至少三年沒有接觸過PHP ...

最好的祝福

我建議您不要使用JSession,但請嘗試使用用戶狀態。 它在Joomla中廣泛用於存儲分頁,跨頁面過濾var。 您可以在此處找到有關它的信息

我唯一關心的是頁面刷新。 刷新時不會重置狀態,我懷疑是否可以使用Joomla API ...

還有一件事-您不需要在會話中存儲UserId,因為您可以隨時使用以下簡單代碼來檢索它:

$userId = JFactory::getUser()->id;

更多信息在這里

SESSION用於臨時數據。 如果您不怕丟失數據,則可以使用它來存儲數據。

如果您要永久關聯某些數據,請使用#__user_profiles table ,例如鍵值存儲。

如果要對其進行一些分析,則必須使用數據庫結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM