我正在编写一份调查报告,应该一次显示一个问题。我对形式如何运作有点生疏,所以这可能是问题,但这是我的问题。
程序从文件中读取问题并在页面上显示。基本上我想用一个表单来显示一个问题,通过下一个或上一个按钮来回答问题,然后从那里转到下一个问题。
值得注意的是我必须使用CGI(虽然我认为这不会产生太大影响)。
根据我的理解,我必须使用某种隐藏字段来跟踪当前的问题编号,这是否准确?
答案 0 :(得分:1)
从CPAN有一个名为CGI::Session的模块。正如您可能猜到的,该模块处理会话管理。这样做有助于维护CGI应用程序中的状态。除非你的需要带给你一个CGI :: Session特别没有涵盖的方向,否则你最好让它为你做会话/状态管理的重任。
虽然可以使用隐藏字段将信息从一个州传递到另一个州,但有一些方法可以比其他方式更可靠。隐藏的领域只是几种技术中的一种。 GET请求可以将会话信息从一个请求传递到下一个请求。隐藏的领域也是如此。饼干也是。但是,传递一个标识特定会话的哈希值通常更好,而不是传递当前和下一个问题编号。对于有人以你的脚本无意处理的方式进行操作更难。本段的重点是CGI :: Session让您不必担心会话管理的实施。这使您可以专注于完成某项工作(Web应用程序的主要目的)。
答案 1 :(得分:0)
有几种方法可以进行会话管理,不依赖于在“隐藏”字段中存储内容。为什么不回写对数据库的响应?这样,如果他们没有第一次完成调查,人们就可以恢复调查。