ColdFusion:服务器端用户验证

Pau*_*aul 1 coldfusion server-side-validation cfml

有没有办法改进这些服务器端用户字段验证?

<cfif Form.LoginName EQ ""><h1>Login Name is required.</h1></cfif>
<cfif Form.Password EQ ""><h1>Password is required.</h1></cfif>
<cfif Form.Password NEQ Form.PasswordConfirmation><h1>Password confirmation does not match Password.</h1></cfif>
<cfif Form.FirstName EQ ""><h1>First Name is required.</h1></cfif>
<cfif Form.LastName EQ ""><h1>Last Name is required.</h1></cfif>

<cfif Form.LoginName EQ "" OR Form.Password EQ "" OR Form.Password NEQ Form.PasswordConfirmation OR Form.FirstName EQ "" OR Form.LastName EQ "">
    <p>User has not been created</p>
    <p>You can use your browser's back button to keep form fields filled and try again.</p>
    <p><a href="users.cfm">Return to users list</a>.</p>
    <cfabort>
</cfif>
Run Code Online (Sandbox Code Playgroud)

Ada*_*ron 6

您将业务逻辑与显示器耦合的方式有点不尽如人意.您可能会从阅读MVC分离关注点中受益.

从您的逻辑角度来看,您的验证规则看起来很好,但您正在进行两次验证,这似乎过多:每个元素,然后是所有元素.这部分是由于我在上面强调的问题.

我会考虑在程序上停止思考,并以更OO的方式思考,并定义User.cfc的概念,并提供某种验证服务(请参阅ValidateThis).或类似的东西.

最后,这不是Stack Overflow上最好的问题,但对Code Review有利.对于这个问题没有一个答案,因此人们倾向于建议将其关闭为"主要基于意见".

我也将其视为"ColdFusion"而不是"ColdFusion 10",因为它与CF10没什么特别关系,它只是一个CFML问题.你会得到更多的观众,标记为"ColdFusion".