coldfusion输入类型='隐藏'没有 隐藏

问题描述 投票:2回答:2

我有一个传递变量的表单,其中有很多隐藏的输入,然后是提交。这是一些代码:

<input type = "hidden" name =  "templname" value =  '#templname#'>
<input type = "hidden" name =  "attloc"    value = '#extattloc#'>      
 <input type = "hidden" name =  "cctype"    value = 'f'>
 <input type = "hidden" name =  "merls"     value = '#merls#'>
  <input type = "hidden" name =  "invnum"    value = '#invnum#'>

  <cfif ArrayIsDefined(selvalarr,1)>
        <cfloop array = "#selvalarr#" index = "att"> 
           <input type = "hidden" name = "att" value ="#att#">
        </cfloop>
   </cfif>

   <cfloop array = "#letarr#" index = "let">
    <input type = "hidden" name =  "let" value = '#let#'>
   </cfloop>

     <input type   = "submit" 
           class   = 'repbutton onoffbut'  
           style   = 'height:75px;'             
           id      = "runemail"                             
           value   = "run email"  >
  </form>
  </td>  

一切都是你所期望的 - 除了关于letarr的循环。变量#ly#被转储到页面上,尽管输入显然是隐藏的。这是变量“let”的样子(2个值)。此输出来自以下代码:

<cfloop array = "#letarr#" index = "let">
<br>#let#     
</cfloop>

enter image description here

这是隐藏的输入给我的东西:

enter image description here

除了“运行电子邮件”按钮之外,什么都不应该。

我已完成数组“letarr”的直接输出,这是正确的(见上文)。我已经检查过在<td标签内有它不是问题。我认为这是变量,也许是多行。

有没有人知道是什么原因引起的?或者如何修复它?

input coldfusion hidden cfml
2个回答
5
投票

做几个步骤。

  1. 做一个<cfdump var="#letarr#">以确保没有意外的值。
  2. 确保保护变量免受注入 <cfloop array = "#letarr#" index = "let"> <input type = "hidden" name = "let" value = '#EncodeForHTMLAttribute(let)#'> </cfloop>
  3. 我真的很想知道是否有缺少的引用或奇怪的东西看起来像你的字符串中的引用。我会寻找后退,智能(又名愚蠢)的引用,以及重音标记或其他东西。你的结果看起来像是放弃了某个地方的HTML

0
投票

总是尝试使用encodeForHTML()来避免这些问题。

© www.soinside.com 2019 - 2024. All rights reserved.