



Webフォームにデータを埋めてHTMLページを生成する
use HTML::FullInForm;
パッケージをロードする。
使い方:
my $html = <<HTML:
<html>
:
</html>
HTML
my %data = ('elm1' => 1, 'opt' => 'OP2');
my $output = HTML::FullInForm->fill(\$html, \%data, target => $form_name, fill_password => 0 | 1,
ignore_fields => \@ignore, disable_fields => \@disable);
HTMLソースは、下記の形式で入力する。
①スカラー参照 ②リスト参照 ③ファイルハンドル(型グロブ:\*FH)④ファイル名
オプションパラメタは下記の通り。
target:複数のフォームがある場合に、ターゲットフォーム名を指定する。
指定しなければ、全てのフォームが対象になる。
fill_password:passwordフィールドにデータを埋めるか否か。デフォルトは0。
ignore_fields:%data内に値指定があっても無視する(値を設定しない)フォームフィールド名を指定する。
disable_fields:disable属性を付加するフォームフィールド名を指定する。但し、本日現在確認できるバージョンではバグがある。disable属性は、タグの属性としては"disabled"を出力しなければならないが、"disable"を出力するので正しく動作しない。
fillメソッドは、インスタンスから呼び出しても可。
my $ff = new HTML::FillInForm;
my $output = $ff->fill(....);
テキストフィールドなどの値を埋め込む場合、必要に応じてHTMLエスケープを行ってくれるのでので、事前にエスケープする必要はない。但し、< > & " はエスケープしてくれるが、' はエスケープしてくれない。 valueの属性値を ' ' で囲っているとクロスサイトスクリプティングされる可能性があるので、必ず " " で囲うこと。