福岡のIT系の会社で働くエンジニアのブログです。

技術雑記

[Perl][CPAN] HTML::FillInForm 1.06 のバグ

Twitter bookmark Facebook LINE Pocket Feedly RSS

現在稼動中のASPでHTMLタグをエスケープするとなんかおかしくなるパターンがあったので、調べてみた。
どうやらHTML::FillInFormのバグっぽい。

INPUTタグの箇所でnameが同じ複数の項目に配列でセットすると、重複してHTMLタグがエスケープされるようです。

・template








・fill_formに渡す配列(Data::Dumperにて確認)

'flow_item' => [
'あ11',
'い22',
'う33',
'え44',
'お55',
],



・出来上がるHTML

あ11" name="flow_item" id="flow_item_0" type="text" size="55">
い22" name="flow_item" id="flow_item_1" type="text" size="55"/>
う33" name="flow_item" id="flow_item_2" type="text" size="55"/>
え44" name="flow_item" id="flow_item_3" type="text" size="55"/>



うっはーー!配列が増えると増えるだけエスケープされていくじゃん!!ひでー。

てことで、モジュールを以下のように変更。
うーん、これでほんとに大丈夫なんかなぁ…。

$ diff FillInForm.pm.org FillInForm.pm
305a306
+ last;


実用Perlプログラミング
実用Perlプログラミング

Twitter bookmark Facebook LINE Pocket Feedly RSS