我有一个三步表格,其中每个步骤都有自己的动作。操作重定向到下一步。数据存储在会话范围内。我有一个过滤器,可以防止用户通过发布请求以外的任何方式访问表单处理程序。
但是,没有什么可以阻止某人手动输入步骤的地址。为了解决这个问题,我在会话中设置了一个 currentStep 变量。
<!--- Some data is processed here --->
<cfset session.currentStep = "stepTwo">
在第二步中,我将检查结构键:
<cfif NOT session.currentStep = "stepTwo">
<!--- redirect to #session.currentStep# --->
这种方法有效,但它有一个主要缺点:用户不能在浏览器窗口中按下后退按钮,或编辑他或她已经输入的任何数据。
实施多步骤表单的最佳实践是什么?我可以改进我的流程以合并后退按钮功能吗?