У меня есть трехэтапная форма, где каждый шаг отправляется на свое собственное действие. Действие перенаправляется на следующий шаг. Данные хранятся в области сеанса. У меня есть фильтр, который запрещает пользователю получать доступ к обработчикам формы через что-либо, кроме почтового запроса.Каковы некоторые лучшие практики для многоступенчатых форм в Coldfusion?
Однако ничто не мешает кому-либо вручную вводить текст в адресе шага. Чтобы справиться с этой проблемой, я устанавливаю в текущей переменной currentStep.
<!--- Some data is processed here --->
<cfset session.currentStep = "stepTwo">
А на втором этапе я хотел бы проверить на structkey:
<cfif NOT session.currentStep = "stepTwo">
<!--- redirect to #session.currentStep# --->
Этот подход работает, но имеет существенный недостаток: пользователь не может нажать кнопку возврата в окне браузера, или редактировать любые данные, которые он или она уже ввели.
Каковы наилучшие методы реализации многоступенчатой формы? Могу ли я улучшить свой процесс, чтобы включить функциональные возможности кнопок?
использование JS: http://www.coldfusionjedi.com/index.cfm/2010/5/27/Turning-a-form-into-a-multistep-process-with-jQuery, к счастью, этот не поддерживает Назад, но вы можете добавить его. – Henry
Генри, я думал об этом, но я думаю, что это усложняет ситуацию. Тогда выполнение проверки на стороне сервера становится проблемой. Например, как вы указываете пользователю верный шаг? – Mohamad