HTML页面和PHP服务器页面

HTML页面和PHP服务器页面

问题描述:

我设计一个简单的拖放测验之间保持状态。我们限制每个框/答案获得正确答案的尝试次数。但是,我想保持测试的功能和状态与显示/视图分离。 当前,当用户尝试通过在问题框上放置答案框来获得正确答案时,会对返回“true”或“false”值的PHP页面进行ajax调用。 我们一直在评估我们是否希望在PHP页面上使用Session变量,或者更简单的跟踪每个盒子消耗多少次尝试。为了保持这些数据在服务器上的状态,最好(为了好的形式)保存 - 所以客户端不知道发生了什么。会话变量似乎对我有意义 - 当用户继续尝试不同的问题/回答组合时,服务器会跟踪尝试的次数并返回(在Ajax响应中)用户问题的结果(对/错,以及如果有的话,还有多少次尝试,但是我想知道是否有更好的解决方案。任何输入?HTML页面和PHP服务器页面

会议似乎是一个不错的选择我。 Cookies可能会被篡改,所以如果您需要错误计数是准确的,我会避免这种情况。

+0

所以,如果我部署此代码,例如10名学生,将在服务器遇到问题,如果两个学生在同一时间对测验的工作?还是会话变量唯一存储为每个登录的客户端?那么,如果Joe试过两次盒子,Bill的盒子1是否会显示为已经尝试过两次? – 2012-07-23 19:41:37

+0

@SpencerAllenGardner - 会话在用户级别;一个用户的会话数据将不会被另一个用户使用。这是通过为每个用户创建一个唯一的标识符来完成的(PHP库应该为您负责)。通常,id存储在cookie中,但它也可以作为HTTP请求中的参数。 – 2012-07-23 19:45:32

+0

从准MVC的角度来看,最好的做法是:返回一些XML/JSON,并且该特定框的尝试次数最好?或者,如果返回“真”或“假”值来确定盒子是否可以再次尝试,它会更好还是更干净?我猜测后者。记住 – 2012-07-23 19:52:53

会议可能是你最好的选择。 Cookie也可以使用,或者如果您可以保证浏览器中的HTML5 localStorage的可用性,您也可以使用它。

不幸的是保持功能独立,不存在。您可以使用会话变量或与存储在cookie中的会话ID配对的数据库存储。

商店当前用户状态进入会议(临时存储)并跟踪他已经回答了什么不能等在最后一步将数据存储到数据库或文件(永久存储)。会话对于每个用户都是单独的。用户不能更改您的网站会话。

Session usage