问题描述
目前我正在处理通过 onrequeststart
方法将某人重定向到 CF2018 站点的登录页面。如果 cflogin
未定义,我将包含 loginform.cfm
页面。但是,当我在会话超时后从中恢复时遇到了一个问题,我正在寻找有关如何处理的建议。
假设我有一个管理用户的用户页面,在主索引页面上,每行都有一个按钮,您可以单击该按钮删除用户。从那里表单被提交到具有删除功能的 users.cfc
页面。我还在主用户索引页面上设置页面变量,如页面标题等。如果会话超时并且有人单击登录表单显示的删除按钮,他们可以登录。它运行良好,但随后它尝试重定向回 cfc,此时变量不存在,并引发 500 错误。
我正在考虑如何处理。当会话超时时,我是否应该将它们完全重定向回根目录而不是包含 loginform.cfm
模板?
感谢任何建议或想法。
解决方法
从那里将表单提交到具有删除功能的 users.cfc 页面。
如果您的表单直接发布到诸如
action="users.cfc?method=delete"
然后将其更改为
action="user_delete.cfm"
并在该页面上调用您的 CFC。
这可能对您使用 onRequestStart()
进行的 cflogin
进程检查反应更好。
我还建议在处理任何删除请求或任何表单处理 cgi.request_method EQ "POST"
之前验证 method="post"
。