cargo.cgi 824行目付近
foreach (@JUCHU) { print; }
で jucyu.txt が読み込まれHTML出力されます。
その後、スクリプトの初期段階 300行目付近
if ($name =~ /(.+);csv/i) { push(@CSV,$value); $name = $1; }
により、リスト @CSV に購入者情報が取り込まれ、
320行目
$in{$name} = $value;
ですべてのフォームデータが 連想配列 %in に格納され、
328行目付近で
if ($name2 !~ /^_/ && $name2 !~ /^;/) { push(@in2,"$name2\0$value2"); }
のように、一定条件のフォームデータを、リスト @in2 に格納し、
979行目付近で
foreach (@in2) {
($key,$val) = split(/\0/,$_,2);
$key2 = $key;
if ($key2 =~ /(.+);csv/i) { $key2 = $1; }
$val2 = $val;
$val2 =~ s/\n/<br>\n/g;
print "<TR><TD BGCOLOR=FFEEDD ALIGN=RIGHT>$key2</TD><TD ALIGN=LEFT>$val2<input type=hidden name=\"$key\" value=\"$val\"></TD></TR>\n";
}
のように購入者情報を展開し、
306行目付近で
&jcode'convert(*name,'jis');
&jcode'convert(*value,'jis');
$mail{$name} = $value; #この連想配列は以後使われていない。
if ($name !~ /^_|ORDER|CARGO|GNAME|CODE|TANKA|KAZU|TAXRATE|REM1|REM2|REM3|REM4|CALS1|CALS2|DEBUG|SUBMIT/) { push(@MAIL,"$name\0$value"); }
と、リスト@MAILに再びフォームデータを取り込み
1074行目付近で
foreach $value (@MAIL) {
($name,$value) = split(/\0/,$value);
なんやかんや
print OUT "$name = $value\n";
push(@KAKUNIN2,"$name = $value\n");
}
のように項目ごとにちぎり、確認用メールには
1124行目付近で
foreach $value (@KAKUNIN2) { print OUT $value; }
と先のリスト@KAKUNIN2 を展開しています。
juchu.txt の各項目のラベルに何らかの工夫をして、cargo.cgi の購入者情報が展開される項目を
上の関係するスクリプトすべてで処理を行う必要があります。