繁体   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