coldfusion cfm页面中的特殊字符错误

时间:2013-09-19 21:59:12

标签: coldfusion coldfusion-7

我们正在将CF MX7用于我们的某个应用程序。

当我们输入一组要通过应用程序搜索的字符时,CF会抛出一个错误,说明如下:

  

元素USER_NAME在网址中未定义。

错误发生在D:\ Inetpub \ wwwroot \ MISWEB \ lci \ userNavigator.cfm:第2行

1 : <CFSET login_id = #url.user_login#>
2 : <CFSET user_name = #url.user_name#>
3 : <CFSET user_id = #url.user_id#>

当我们输入登录ID以搜索其中包含#字符0952#2时,会发生这种情况。基本上,我明白问题在于我们输入的登录ID,但是我们不能要求用户更改他的登录ID。是否有另一种方法来更改代码,使其接受这些值?

<CFSET login_id = #0952#2#>

因此错误在第二行被抛出,因为它不正确,因此它不接受用户名。有没有什么方法可以在声明#..#open和close#function中提供的登录ID中包含#present?

1 个答案:

答案 0 :(得分:4)

由于搜索表单正在执行GET请求,因此表单字段会添加到网址中。问题是哈希(#)被浏览器解释为页面上的位置,因此在URL中的第一个哈希之后甚至没有发送到服务器,这就是ColdFusion说它不存在的原因。 / p>

要解决此问题,您需要在提交表单之前对哈希进行编码。您可以使用JavaScript和表单的onsubmit处理程序执行此操作。

escape(document.formName.user_name.value);

这将以编码格式(user_name)在URL中发送%230952%232%23,然后您可以在将其设置为user_name时进行解码。

<cfset user_name = urlDecode(url.user_name)>