тип ввода Coldfusion = «скрытый» не скрывается - PullRequest
2 голосов
/ 27 марта 2019

У меня есть форма, которая передает переменные, и в ней есть много скрытых входных данных, за которыми следует отправка. Вот некоторый код:

<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. Переменная # let # сбрасывается на страницу, хотя входные данные явно скрыты. Вот как выглядит переменная "let" (2 значения). Этот вывод был из следующего кода:

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

enter image description here

Вот что дает мне скрытый ввод:

enter image description here

Ничего не должно быть, кроме кнопки «Запустить электронную почту».

Я сделал прямой вывод массива "letarr", и он правильный (см. Выше). Я проверил, что наличие внутри тега <td не проблема. Я думаю, что это что-то о переменной, возможно, несколько строк.

У кого-нибудь есть идеи, что вызывает это? или как это исправить?

Ответы [ 2 ]

5 голосов
/ 27 марта 2019

Сделайте пару шагов.

  1. Сделайте <cfdump var="#letarr#">, чтобы убедиться в отсутствии неожиданных значений.

  2. Обязательно защитите переменные от инъекций

    <cfloop array = "#letarr#" index = "let">
      <input type = "hidden" name =  "let" value = '#EncodeForHTMLAttribute(let)#'>
    </cfloop>
    
  3. Мне действительно интересно, есть ли пропущенная цитата или странная вещь, которая выглядит как цитата в вашей строке. Я хотел бы найти обратную галочку, умную (иначе тупую) цитату и знак акцента или что-то в этом роде. Ваши результаты выглядят так, как будто они разочаровались в HTML где-то

0 голосов
/ 27 марта 2019

Всегда старайтесь использовать encodeForHTML(), чтобы избежать подобных проблем.

...