我有一个关于我的服务器端验证的问题。我在我的功能中传递了参数。其中一些参数是由用户填充的FROM值,其中一些是我从数据库填充的隐藏值。隐藏值将使用表单上特定字段的当前值。所以我的问题是,如果我在我的cffunction和我的隐藏值中传递新值然后比较这两个,那对我的服务器端验证是否足够?我想知道是否有任何用户可以解决该验证的情况?或者更好的选择是创建cfquery,它将直接从服务器端的DB中提取该记录,而不是在客户端创建隐藏字段,然后将值作为参数传递?以下是我的问题示例:
<select name="vehicles" id="vehicles">
<input type="hidden" name="curVehicle" id="curVehicle" value="#oldVce.VehcileNum#" readonly>
<option value="">Pick the vehicle</option>
<cfloop query="myVehicles">
<option value="#vehicleNum#">#vehicleName#</option>
</cfloop>
</select>
服务器端:
<cffunction name="InsertUpdateVehicles" access="remote" returnformat="JSON" output="true">
<!--- current value from drop down menu --->
<cfargument name="newVehicle" type="string" required="yes">
<!--- value from hidden field curVehicle --->
<cfargument name="oldVehicle" type="string" required="yes">
<cfset myResults = structNew()>
<cfif trim(arguments.newVehicle) NEQ trim(arguments.oldVehicle)>
<!--- Run Insert/Update --->
</cfif>
<cfreturn myResults>
</cffunction>
如果有任何人可以提供帮助或提供示例,如果有某种方法可以解决此验证,请告知我们。提前谢谢。
答案 0 :(得分:2)
如果您想要服务器端验证,则应在您的函数中获取#oldVce.VehcileNum#
并在那里进行检查。或者您可以使用哈希函数来加密您的隐藏字段。