表单变量和双引号

时间:2010-08-05 15:23:57

标签: coldfusion

我正在填充数据库中的表单变量。 如果字段值中有双引号,例如3英寸3英寸,那么html源代码如下:

<input name="width" value="3"">

问:如何处理包含双引号的字段?

我首先认为这是一个cfqueryparam问题,但事实证明这是一个HTML问题。

2 个答案:

答案 0 :(得分:9)

显示值时使用HtmlEditFormat

像这样:

<input name="width" value="#HtmlEditFormat(Form.Width)#" />


还有:

  

XmlFormat用于XML输出;
  JavaScript输出JsStringFormat;
  网址内容UrlEncodedFormat

对于更完整/更重要的内容,您可以考虑OWASP's ESAPI - 可以在CF中使用的Java安全API,并提供以下内容:

Context        Method
-------        ------
HTML           esapi.encodeForHTML(variable)
HTML Attribute esapi.encodeForHTMLAttribute(variable)
JavaScript     esapi.encodeForJavaScript(variable)
CSS            esapi.encodeForCSS(variable)
URL            esapi.encodeForURL(variable)

(来自Pete Freitag's cfunited presentation slides

答案 1 :(得分:2)

我认为它可能是浏览器,您需要使用“在您的HTML中对报价进行编码,然后才能正确传递。